Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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时,Text area maxlength不起作用_Javascript_Html_Angular_Typescript - Fatal编程技术网

Javascript 禁用textarea时,Text area maxlength不起作用

Javascript 禁用textarea时,Text area maxlength不起作用,javascript,html,angular,typescript,Javascript,Html,Angular,Typescript,在我的angular应用程序中,我有一个禁用的文本区域,如屏幕截图所示,我有其他输入,如textbox和listbox以及几个按钮。仅从这些输入中选择或添加的值必须在我的文本区域中,因此我的textarea被禁用,但由于已禁用,textarea maxlength不起作用。我通过移除禁用标记检查了它,maxlength起作用了。但根据我的要求,它必须被禁用,但现在它接受的值大于给定的maxlength 代码: 当禁用textarea时,我是否遗漏了一些东西或任何其他实现方法?当我选中时,您不

在我的angular应用程序中,我有一个禁用的文本区域,如屏幕截图所示,我有其他输入,如textbox和listbox以及几个按钮。仅从这些输入中选择或添加的值必须在我的文本区域中,因此我的textarea被禁用,但由于已禁用,textarea maxlength不起作用。我通过移除禁用标记检查了它,maxlength起作用了。但根据我的要求,它必须被禁用,但现在它接受的值大于给定的maxlength

代码:



当禁用textarea时,我是否遗漏了一些东西或任何其他实现方法?

当我选中时,您不能键入超过
maxlength
属性中指定的内容,即使它是否已禁用。但当使用JavaScript添加数据时,即使它被禁用或未被禁用,也会超出限制。我猜原因是因为
maxlength
限制了使用JavaScript进行修改的用户,而不是开发人员。如果这是你的情况,你可以通过切片来截断它

var result=(textarea.value+value_to_add).split("").slice(0,maxlength).join("");
textarea.value=result;

你说接受是什么意思?你不是说它被禁用了吗?如果它已经被禁用了,怎么可能打字呢?它可能没有被禁用。一些错误如屏幕截图所示,根据我的要求,我有一个文本框和一个列表框。仅从这两个框中选择或添加的值将在我的文本区域中,因此我的文本区域被禁用,但现在由于其被禁用,textarea maxlength不起作用。我通过移除禁用标签检查了它,然后它工作了,但根据我的要求,它必须被禁用。您应该使用
readonly
使它成为只读但仍然不工作。这将接受全部或全部不接受。我对UI非常陌生,有没有什么方法可以接受值直到我的maxlength并截断其余部分,例如,如果我的maxlength为15,我给了20个字符,它应该接受开始的15个字符并截断其余部分。是的,你可以,我已经用截断功能修改了答案
var result=(textarea.value+value_to_add).split("").slice(0,maxlength).join("");
textarea.value=result;