Javascript 如何在键入文本时自动增加文本区域的宽度?

Javascript 如何在键入文本时自动增加文本区域的宽度?,javascript,jquery,resize,textarea,Javascript,Jquery,Resize,Textarea,我试图建立一个文本区域,其宽度将在插入文本时动态增加 我发现许多脚本可以通过改变文本区域的高度来动态调整文本区域的大小,但没有任何脚本能够满足我的需要 那么你知道有什么可以帮助你的吗?给文本区域一个ID。如果文本区域内的字体是monospace,那么它很简单。如果不是有点复杂(创建一个字符宽度的分布函数,得到一个平均值并向前使用) 在onkeyup或onkeypressed事件中,使用 if (document.getElementById('yourid').value.lenght>d

我试图建立一个文本区域,其宽度将在插入文本时动态增加

我发现许多脚本可以通过改变文本区域的高度来动态调整文本区域的大小,但没有任何脚本能够满足我的需要


那么你知道有什么可以帮助你的吗?

给文本区域一个ID。如果文本区域内的字体是monospace,那么它很简单。如果不是有点复杂(创建一个字符宽度的分布函数,得到一个平均值并向前使用)

在onkeyup或onkeypressed事件中,使用

if (document.getElementById('yourid').value.lenght>defaultValue)
{
    defaultValue = defaultValue+charWidth;
    document.getElementById('yourid').width = (defaultValue+charWidth)+'px';       
}
这可能会有帮助

<textarea id="tarea" onkeypress="change()" style="width:200;"> </textarea>


<script type="text/javascript"> 
function change() {
    var a = document.getElementById('tarea');
    var len = a.value.length;
    a.style.width = 200 + len;
    alert(a.style.width);
}
</script>

函数更改(){
var a=document.getElementById('tarea');
var len=a.value.length;
a、 style.width=200+len;
警报(a.样式.宽度);
}

祝你愉快。

我尝试过使用类似的东西,但我得到的只是文本区域的垂直扩展。你需要修改其中一个脚本来更改宽度而不是高度。那么你真的尝试过编写自己的水平宽度扩展插件吗?有一些教程介绍如何编写您自己的垂直扩展程序(例如),这些程序应该很容易适应水平扩展。然而,我不得不质疑这是否有用。为什么希望文本区域水平扩展?对我来说,这真的很烦人。不,事实上这正是我需要的,因为我没有太多时间,所以最好找到一个现有的插件。不过还是谢谢你