|
Динамическое изменение ширины в зависимости от содержимого
Всем привет, вопрос очень простой и наверное избитый, но так и не смог найти внятного ответа.
Допустим есть элемент 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, время: 20:48. |
|