Длина 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, время: 09:09. |