我正在使用限制textArea长度的函数。虽然功能表现良好,但我想问我是否以正确的方式调用功能?需要关于定制textarea最大长度函数的建议
这
<h:inputTextarea id="questionInputTextArea"
value="#{faqAddUpdate.question}"
cols="50"
rows="3"
disabled="#{faqAddUpdate.buttonState}"
onkeypress="limitTextArea(this, 400)"
style="overflow: auto;">
<f:validateLength maximum="200" />
</h:inputTextarea>
下面是函数
function limitTextArea(element, limit) {
var $textArea = $(element); //casting to jQuery so we can use jQuery functions on it
($textArea).keypress(function(event){
if (event.which < 0x20) {
// e.which < 0x20, then it's not a printable character
// e.which === 0 - Not a character
return; // Do nothing
}
if ($textArea.val().length == limit) {
event.preventDefault();
} else if ($textArea.val().length > limit) {
// Maximum exceeded
$textArea.val() = $textArea.val().substr(0, limit);
}
}); //end of keypress
} //end of function()
是困惑我是这样,我在我的JSF代码中使用onkeypress事件,并跟我在功能的东西也说($ textArea).keypress(功能(事件)。我该如何优化这个功能?或者我做对了吗?
谢谢
嗯,你能告诉我一件事吗。如果我想在我的函数中使用事件对象,我该如何使用它?像我只是传递元素和限制我的功能。我是否也可以将事件对象传递给我的函数,如'onkeyup =“limitTextArea(this,400,event)”'。谢谢 – Basit
事实上,我使用'event.which'因为达到maxlimit后,如果我按任何键,然后你觉得在textarea一些不稳定的行为。和textarea一样,它正试图走向顶峰,或者试图阻止你写作。这是滚动摇晃略微。这就是为什么我使用'event.which'所以用户一旦达到最大限制就不能按下按键 – Basit
和使用按键的原因相同。如果我使用键控事件,那么当您在达到最大限制后按键时,您会感觉到轻微抖动的行为。是的,它不匹配:)我会纠正它,因为我正在测试,并专注于功能,所以我离开它。事实上,我通过在这个论坛上阅读你的答案来使用这种方法;)。谢谢 :) – Basit