Попытка получить мои поля ввода [type = 'text'] для изменения размера их содержимого при загрузке страницы. Используя этот код, они эффективно изменяют размер на фокус.Изменить размер окна ввода для содержимого onload
$(document).ready(function() { $("input[type='text']").bind('focus', function() { $(this).attr("size", $(this).val().length); }); });
Я попытался обменивать «фокус» для различных событий, таких как «нагрузка» и «готова» безрезультатно. Имейте в виду, что я ищу что-то легкое и быстрое, что изменит размер всех полей ввода [type = 'text'] на их содержимое при загрузке страницы.
Решение
Я закончил с использованием Thom's ответа, как решение, но потом я понял, что я хотел бы также, как поле ввода, чтобы расширить, как текст набран в него. Поэтому я объединил то, что у меня было до этого, и ответ Тома, чтобы обеспечить обе функции. Я также добавил css, чтобы убедиться, что он не размер страницы. Вот мой окончательный код:
HTML
<input type="text" value="resized onload and when typing"/>
JQuery
$(document).ready(function() { $("input[type='text']").each(function(index) { $(this).attr("size", $(this).val().length + 5); }); $("input[type='text']").bind('keyup', function() { $(this).attr("size", $(this).val().length + 5); }); });
CSS
input[type="text"]{ max-width:100%;}
Потенциальным решением является изменение привязки к нагрузке. Это не лучшее решение, но оно работает. https://jsfiddle.net/lexingtonpenguins/3bwkcs8s/2/ – 416E64726577
приятно, это было быстро. Мы можем немного почистить его. Есть что-нибудь, что можно удалить? –
Нагрузка устарела, поэтому, возможно, более чистый способ - сделать цикл foreach? http://jsfiddle.net/lexingtonpenguins/o6u3xaqr/ – 416E64726577