开发者

Resize input text field as text is entered

Is it possible to resize a t开发者_StackOverflow中文版ext input box as text is typed? I've searched the web and haven't found anything.


I just made one for you, try it here: http://jsfiddle.net/FNMSP/2/

function autoResize(e){
    var ele=e.target;                          //get the text field
    var t=ele.scrollTop;                       //use scroll top to determine if
    ele.scrollTop=0                              //space is enough
    if(t>0){                                       //If it needs more space....
        ele.style.height=(ele.offsetHeight+t+t)+"px";  //Then add space for it!
    }          
}

You can do this to the textarea,

<textarea onkeydown="autoResize(event)">Auto Resize!</textarea>

Or use below to attach the function to every <textarea>:

var ele=document.getElementsByTagName("textarea");
for(i=0;i<ele;i++){
    ele[i].addEventListener("keydown",autoResize,false)
}

Feel free to use it.


Pretty simple but weird implementation :)

<script>
function enlarge(ele)
{
   ele.size += 10;
}
</script>

<form>
<input onkeypress="enlarge(this)" size="10"/>
</form>


<SCRIPT LANGUAGE="JavaScript" type="text/javascript">

  function call_me(max_length) {
      if((document.form1.mybox.value == null ) ||
         (document.form1.mybox.value == "" ))
          document.form1.mybox.size = size;
      if((document.form1.mybox.value.length >= size) &&
         (document.form1.mybox.value.length <= max_length))
          document.form1.mybox.size = document.form1.mybox.value.length + 1;
      else
          document.form1.mybox.size = size;
  }

</script>

LastName: <input type="text" style="font-family: Terminal"
                 name="mybox" maxlength="30" size="10"
                 onFocus="setInterval('call_me(document.form1.mybox.maxLength)', 1)">

<SCRIPT LANGUAGE="JavaScript">

  var size = document.form1.mybox.size; 

</script>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜