私は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(function(event))この関数を最適化するにはどうすればよいですか?それとも、私は正しくやっていますか?
ありがとう
HHmm私に教えてください。私は私の関数でイベントオブジェクトを使用したいのですが、どうすれば使用できますか?私はちょうど要素を渡しているように私の機能に制限しています。イベントオブジェクトを 'onkeyup =" limitTextArea(this、400、event) "'のような関数に渡すことはできますか?ありがとう – Basit
実際に私は 'max.itに達した後に' event.which'を使用しました。何かキーを押すと、テキストエリアで不安定な振る舞いを感じます。テキストエリアのように、トップに行くことを試みているか、あなたが書くのを妨害しようとしています。スクロールバーがわずかに振れます。だから、私は 'event.which'を使って、最大制限に達するとユーザーがキーを押すことができないようにしています。 – Basit
そしてkeypressを使うのと同じ理由です。私がkeyupイベントを使用する場合、最大限に達した後にキーを押すと、わずかに不安定な動作をします。そしてはいそれは一致しません:)私はそれを修正します、私はテストしていたので、私はそれをそのまま残して機能に焦点を当てていた。実際に私はこのフォーラムであなたの答えの一つを読んでこのアプローチを使用しました;)。ありがとう:) – Basit