我有3个文本框,而对于所有3个keyup
事件,我想调用相同的函数吗?
在下面的代码中,我想将keyup
事件绑定到CalculateTotalOnKeyUpEvent
函数到名为compensation
的文本框,但它不起作用:
$("#compensation").bind("keyup", CalculateTotalOnKeyUpEvent(keyupEvent));
function CalculateTotalOnKeyUpEvent(keyupEvent) {
var keyCode = keyupEvent.keyCode;
if (KeyStrokeAllowdToCalculateRefund(keyCode)) {
CalculateTotalRefund();
}
};
答案 0 :(得分: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);
你需要将函数作为参数传递,你不需要传递声明的函数。
答案 1 :(得分:5)
$("#txt1, #txt2, #txt3").keyup(fn);
答案 2 :(得分:2)
或者只是给所有3个文本框提供相同的课程,你就可以了。
答案 3 :(得分:0)
您正在立即调用CalculateTotalOnKeyUpEvent
,而不是将其作为参数传递。试试这个:
$("#compensation").bind("keyup",CalculateTotalOnKeyUpEvent);
答案 4 :(得分:0)
$("#compensation").bind("keyup",CalculateTotalOnKeyUpEvent(keyupEvent));
当您编写CalculateTotalOnKeyUpEvent(keyUpEvent)[注意函数名称后的()]时,您正在执行CalculateTotalOnKeyUpEvent并将函数的结果分配给键起事件。
你应该做点什么,
$('#compensation, #otherId1, #otherId2')
.bind('keyup', CalculateTotalOnKeyUpEvent);
其中'otherId1'和'otherId2'是另外两个文本框的ID。