Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 将textarea限制为“文本”;“适合”;_Javascript_Html_Dom_Textarea - Fatal编程技术网

Javascript 将textarea限制为“文本”;“适合”;

Javascript 将textarea限制为“文本”;“适合”;,javascript,html,dom,textarea,Javascript,Html,Dom,Textarea,我有一个具有可变宽度字体的文本区域,我需要确保用户在不滚动的情况下不能输入超过文本区域“适合”的文本 简单地捕获keydown和preventDefault()”意味着我无法涵盖用户将内容粘贴到文本区域的用例 计算文本的宽度并不能帮助我确定该框中适合多少文本 我该怎么做?如果您不介意使用jQuery,那么解决方案非常简单。首先,将textarea的当前值保存在变量中。然后在文本区域收听input事件,并通过比较this.scrollHeight和this.clientHeight检查它是否有滚动

我有一个具有可变宽度字体的文本区域,我需要确保用户在不滚动的情况下不能输入超过文本区域“适合”的文本

简单地捕获keydown和
preventDefault()
”意味着我无法涵盖用户将内容粘贴到文本区域的用例

计算文本的宽度并不能帮助我确定该框中适合多少文本


我该怎么做?

如果您不介意使用jQuery,那么解决方案非常简单。首先,将textarea的当前值保存在变量中。然后在文本区域收听
input
事件,并通过比较
this.scrollHeight
this.clientHeight
检查它是否有滚动条。如果是,请将textarea值更改为上一个值。最后,将当前textarea值指定给
lastValue
变量

请参阅代码片段:

var lastValue=$(“textarea”).val()
$(“textarea”)。在(“输入”上,函数(事件){
if(this.scrollHeight>this.clientHeight){
$(“textarea”).val(lastValue)
}
lastValue=$(“textarea”).val()
})


完全不要使用javascript。您可以使用css,例如
overflow-x:hidden您可以始终创建一个自动扩展的文本区域-不会滚动,这是一个选项吗?我可以帮你。这不是我的问题,而是我需要防止里面的文本溢出。如中所述,我至少应该知道有多少文本从px中的固定大小溢出,字符框中的可变大小溢出,并防止其在textarea的值中结束。我面临同样的问题,想问有没有新的解决方案?