6

3つのテキストボックスがあり、3つkeyupすべてのイベントで、同じ関数を呼び出したいですか?

keyup以下のコードでは、イベントをCalculateTotalOnKeyUpEvent関数にバインドして、という名前のテキストボックスにバインドしようとしていますが、機能compensationしません。

$("#compensation").bind("keyup", CalculateTotalOnKeyUpEvent(keyupEvent));

function CalculateTotalOnKeyUpEvent(keyupEvent) {
  var keyCode = keyupEvent.keyCode;
  if (KeyStrokeAllowdToCalculateRefund(keyCode)) {
    CalculateTotalRefund();
  }
};
4

5 に答える 5

12

あなたはこのようにする必要があります:

// 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);

関数をパラメーターとして渡す必要があります。宣言されたとおりに関数を渡す必要はありません。

于 2009-07-16T14:34:09.820 に答える
5
$("#txt1, #txt2, #txt3").keyup(fn);
于 2009-07-16T14:34:36.213 に答える
2

または、3つのテキストボックスすべてに同じクラスを指定するだけで、準備完了です。

于 2010-04-02T08:23:02.343 に答える
0

CalculateTotalOnKeyUpEvent引数として渡すのではなく、すぐに呼び出しています。これを試して:

$("#compensation").bind("keyup",CalculateTotalOnKeyUpEvent);
于 2009-07-16T14:35:42.827 に答える
0
$("#compensation").bind("keyup",CalculateTotalOnKeyUpEvent(keyupEvent));

CalculateTotalOnKeyUpEvent(keyUpEvent)[関数名の後に()があることに注意してください]と書くと、CalculateTotalOnKeyUpEventが実行され、関数の結果がキーアップイベントに割り当てられます。

あなたは次のようなことをすべきです、

$('#compensation, #otherId1, #otherId2')
    .bind('keyup', CalculateTotalOnKeyUpEvent);

ここで、「otherId1」と「otherId2」はさらに2つのテキストボックスのIDです。

于 2009-07-16T14:38:23.603 に答える