Если вы вычисляете ширину на основе длины текста, решение может быть нарушено при вводе некоторых символов, которые имеют другой размер. Например: w
против i
.
Мое предложение: получить значение из ввода, добавить его к некоторому элементу div, который скрыт в теге <body>
. После расчета ширины текста на основе div, вы можете обновить ширину ввода.
$("input[type=text]").on('input', function (event) {
var value = $(this).val();
var div = $('<div>').text(value).appendTo('body');
$(this).width(div.width());
});
div {
position: absolute;
visibility: hidden;
font-size: 12px;
font-family: Arial;
}
input {
padding: 0 6px;
font-size: 12px;
font-family: Arial;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<input type="text" />
Примечание: свойства font-size
и font-family
для div / input должны быть одинаковыми.