Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何根据键入的文本增加文本字段的宽度?_Javascript_Jquery - Fatal编程技术网

Javascript 如何根据键入的文本增加文本字段的宽度?

Javascript 如何根据键入的文本增加文本字段的宽度?,javascript,jquery,Javascript,Jquery,如果用户在其中输入一些文本,我想自动增加输入文本字段的宽度。但如何做到这一点。请帮助我。它可以使用Jquery或javascript吗 谢谢。你是说 你的意思是 不能像字符宽度彼此不同那样精确地增加宽度 但是,你仍然可以这样做 $("input:text").keyup(function() { $(this).css('width', $(this).val().length*10); }); 如你所见,我假设每个字符的字段大小必须增加10px。这很难指定适合所有字符的正确

如果用户在其中输入一些文本,我想自动增加输入文本字段的宽度。但如何做到这一点。请帮助我。它可以使用Jquery或javascript吗


谢谢。

你是说


你的意思是


不能像字符宽度彼此不同那样精确地增加宽度

但是,你仍然可以这样做

$("input:text").keyup(function() {
    $(this).css('width', $(this).val().length*10);
});

如你所见,我假设每个字符的字段大小必须增加10px。这很难指定适合所有字符的正确比例。

不能像字符宽度彼此不同那样精确地增加宽度

但是,你仍然可以这样做

$("input:text").keyup(function() {
    $(this).css('width', $(this).val().length*10);
});
如你所见,我假设每个字符的字段大小必须增加10px。很难分配一个适合所有字符的正确配给。

尝试以下方法:

<script>
function adjustWidth(obj) {

    obj.style.width = (obj.value.length) * 7.3 + "px";
}
</script>
<input type="text" onkeypress="adjustWidth(this)">

功能调整宽度(obj){
obj.style.width=(obj.value.length)*7.3+“px”;
}
但是,这取决于文本大小、字体等

请尝试以下方法:

<script>
function adjustWidth(obj) {

    obj.style.width = (obj.value.length) * 7.3 + "px";
}
</script>
<input type="text" onkeypress="adjustWidth(this)">

功能调整宽度(obj){
obj.style.width=(obj.value.length)*7.3+“px”;
}

然而,这取决于文本大小、字体等

事实上,您可以精确地做到这一点。要做到这一点,可以在屏幕外打开一个绝对定位的div,其字体与文本框相同,并在键盘上填充文本框的文本。然后获取该div的宽度(它将符合文本),并将文本框设置为该宽度

请注意,div需要在屏幕外(左:-9999px)、不隐藏(显示:无)或无法工作,因为浏览器需要渲染文本以计算宽度。此外,将div的文本设置为文本框内容加上尾随空格将有助于确保文本框始终比需要的字符大一个字符,从而考虑显示的键和更新的宽度之间的任何延迟


休息后,我将发布一个修改版的James Padolsey脚本,该脚本与textareas一起工作,首先将宽度调整到某个最大大小,然后在文本换行后调整高度。这并不完全是你想要的,但它可能会有所帮助。

事实上,你可以精确地做到这一点。要做到这一点,可以在屏幕外打开一个绝对定位的div,其字体与文本框相同,并在键盘上填充文本框的文本。然后获取该div的宽度(它将符合文本),并将文本框设置为该宽度

请注意,div需要在屏幕外(左:-9999px)、不隐藏(显示:无)或无法工作,因为浏览器需要渲染文本以计算宽度。此外,将div的文本设置为文本框内容加上尾随空格将有助于确保文本框始终比需要的字符大一个字符,从而考虑显示的键和更新的宽度之间的任何延迟

休息后,我将发布一个修改版的James Padolsey脚本,该脚本与textareas一起工作,首先将宽度调整到某个最大大小,然后在文本换行后调整高度。这不完全是您想要的,但可能会有所帮助。

这是重复这是重复