6

我有 3 个文本框,在keyup所有 3 个文本框的事件中,我想调用相同的函数吗?

在下面的代码中,我试图将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' 是另外两个文本框的 ID。

于 2009-07-16T14:38:23.603 回答