|
Динамическое изменение ширины в зависимости от содержимого
Всем привет, вопрос очень простой и наверное избитый, но так и не смог найти внятного ответа.
Допустим есть элемент input type="text" и требуется менять его ширину динамически в зависимости от длины его value. Как это сделать на jQuery? Или просто на js, не принципиально. |
Утрируя:
<input type="text" size="1" onkeydown="size=value.length||1" onkeyup="onkeydown()" onkeypress="onkeydown()" onchange="onkeydown()"> |
Сорри, наверно не до конца пояснил вопрос.
А проблема в том, что изменение size через жквери не меняет визуально ширину элемента, хотя в атрибут записывает. Не могу понять почему изменяя этот атрибут из жс внешне нифига не происходит. |
Цитата:
<!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"> </style> <script type="text/javascript"> $(document).ready(function(){ $('#test').bind('keyup keydown keypres select click',function(){ var l=this.value.length; l=(l==0)? 1: l; $('#test').attr('size',l); }); }); </script> </head> <body> <input id='test' size='1' type='text' /> </body> </html> Другое дело сайз не совсем совпадает с количеством элементов... :) Лучше подобрать моноширный шрифт и менять свойство цсс width. |
Цитата:
|
Цитата:
<input type='text' /> |
дык)
size=value.length||1 |
Цитата:
|
Жестоко называть переменную l, а потом её ещё сравнивать с 1.
|
Kolyaj, ну не такая уш это и жестокость... :D l ~ len.
Просто привык я к коротким именам переменных, команд и функций... У нас в Cache всё "понимается" по первой букве (максимум двум)... Да и в редаторах цифры подсвечиваются не так как идентификаторы переменных... |
Часовой пояс GMT +3, время: 02:21. |
|