Длина input.text на длину данных
Добрый день. Мне нужно сделать элемент input.text который бы раздвигался по мере ввода в него текста. Например при пустом будет зазор на 10 пикселей примерно, но когда пишут - раздвигается? Как такое реализовать?
Спасибо. |
Цитата:
<!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"> * { margin: 0; padding: 0; } .container { position: relative; } #calc { position: absolute; top: 0; left: 0; border: 1px solid; font-family: Tahoma; font-size: 12pt; } .box { width: 10px; border: 1px solid red; } .box input { width: 100%; border: 0; font-family: Tahoma; font-size: 12pt; } </style> <script type="text/javascript"> function Go() { var val,ot=document.getElementById('txt'); val=ot.value; var oc=document.getElementById('calc'); oc.innerHTML=val; ot.parentNode.style.width=oc.offsetWidth+'px'; } </script> </head> <body> <form> <div class='container'> <div id='calc'></div> <div class='box'> <input type='text' id='txt' onkeyup='Go()' /> </div> </div> </form> </body> </html> |
была такая тема http://javascript.ru/forum/dom-windo...shirinojj.html
|
Вот вариант с size. Но без моноширинного шрифта (зато любого размера) не обойтись. Можно, конечно, пошаманить с maxlength и зазорами, но это от лукавого.
<!DOCTYPE HTML> <html> <head> <style type = "text/css"> .resiz { font-size: 15px; font-family: monospace; } </style> </head> <body> <input type = "text" id = "needResize" size = "1" class = "resiz"> <input type = "text" id = "needResize2" size = "3" class = "resiz"> <script> makeRubber = (function () { function boomer() { this.size = this.value.length + 1; } return function (input) { input.onkeydown = boomer; input.onkeyup = boomer; input.onkeydown(); } })() makeRubber(document.getElementById("needResize")); makeRubber(document.getElementById("needResize2")); </script> </body> |
Благодарю! Теперь ясно куда копать!
|
Часовой пояс GMT +3, время: 15:48. |