Hmmm To nie jest do końca takie proste

Ale proponuje użyć czegoś takiego:
<input type="text" name="nazwa" onkeyup="autoExpand(this)"/>
<script type="text/javascript">
function autoExpand(obj)
{
obj.style.width = '100px';
obj.style.width = parseInt(obj.scrollWidth) + 20 + 'px';
}
Kilka słów objaśnienia. To akurat działa w trybie rzeczywistym. Pierwsza linijka funkcji przywraca domyślną szerokość inputa użyłem 100px - jest to przydatne gdy kasujemy tekst. Do szerokości dodaje jakąś liczbę pikseli żeby nie było ucinania literek ;P lepiej żeby było trochę dłuższe niż za krótkie. I najważniejsze - jeżeli twój input ma ustawiony jakiś padding na lewo/prawo to musisz przetestować ten kod na paru przeglądarkach bo wiem, że niektóre wliczają w scrollWidth także padding więc może wystąpić potrzeba odjęcia paddingu od szerokości inputa

wyjdzie w praniu
HTH!