можно в скрытом Диве дублировать строку из Инпута
и синхронизировать размеры,
в этом случае не обязательно моноширный шрифт
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
input, #hideEl {
font-family: 'Times';
font-size: 12pt;
}
input {
width: 10px;
}
#hideEl {
position: absolute;
top: -9999px;
}
</style>
<script type="text/javascript">
$(document).ready(function () {
var $hideEl = $('<div id="hideEl">'),
$input = $('input'),
a=['click', 'keyup', 'select', 'focus'];
$hideEl.appendTo(document.body);
$(a).each(function(i, v){
$input.bind(v, function () {
$hideEl.text(this.value);
$input.width($hideEl.width() + 10);
});
});
});
</script>
</head>
<body>
<input type='text' />
</body>
</html>