jQuery、同じ機能を3つの異なるテキストボックスのキーアップイベントにバインドします
-
16-09-2019 - |
質問
3つのテキストボックスがあります keyup
3つすべてのイベント、同じ関数を呼び出したいですか?
以下のコードでは、私はバインドしようとしています keyup
イベントへ CalculateTotalOnKeyUpEvent
名前のテキストボックスに関数 compensation
, 、しかし、それは機能しません:
$("#compensation").bind("keyup", CalculateTotalOnKeyUpEvent(keyupEvent));
function CalculateTotalOnKeyUpEvent(keyupEvent) {
var keyCode = keyupEvent.keyCode;
if (KeyStrokeAllowdToCalculateRefund(keyCode)) {
CalculateTotalRefund();
}
};
解決
あなたはこのようにする必要があります:
// Edit according to request in the comment:
// in order to select more than one element,
// you need to specify comma separated ids.
// Also, maybe you need to consider to use a CSS class for the selected elements,
// then it could be just $(".className")
$("#element1, #element2, ....").bind("keyup", CalculateTotalOnKeyUpEvent);
関数をパラメーターとして渡す必要があります。宣言された機能を渡す必要はありません。
他のヒント
$("#txt1, #txt2, #txt3").keyup(fn);
または、3つのテキストボックスをすべて同じクラスに与えるだけで、あなたは行くのがいいですか
$("#compensation").bind("keyup",CalculateTotalOnKeyUpEvent(keyupEvent));
calculatetotalonkeyUpevent(keyUpevent)[関数名の後に()に注意]を記述すると、calculatetotalonkeypeventを実行し、関数の結果をキーアップイベントに割り当てます。
あなたはようなことをするべきです、
$('#compensation, #otherId1, #otherId2')
.bind('keyup', CalculateTotalOnKeyUpEvent);
ここで、 'otherid1'と 'otherid2'はさらに2つのテキストボックスのIDです。
あなたは呼んでいます CalculateTotalOnKeyUpEvent
すぐに、それを議論として渡さないでください。これを試して:
$("#compensation").bind("keyup",CalculateTotalOnKeyUpEvent);
所属していません StackOverflow