我有一些文本框需要只接受小于5的数字。 当用户输入数字时,需要进行一些其他事件。 Keypress事件非常有效,除了当用户在文本框1中输入时,事件被触发一次(这是正确的),当他在文本框2中后续进入时,事件被触发两次(这是正确的吗?) - 一次对于文本框1,另一次用于文本框2.如果他退格并输入第三个数字,则事件被触发三次。
我是jquery的新手,所以如果我遗漏了一些简单的话,请原谅我。我原以为每次按键都会触发一次,但看起来好像是按住以前的按键。
function validateInputKeyPress(e){
var element = document.getElementById(e.name);
$("body").keypress(function(e) {
var keycode= e.keyCode;
alert(e.name); // this tells me which textbox
if (keycode!=8){ //allow backspace
if (keycode<49||keycode>53) { //if not a number less than 6
return false; //disable key press
}
}
handleQtyChange(e.name, keycode);
});
}
答案 0 :(得分:0)
您已在body
上绑定该活动。您应该在输入上绑定事件。
您可以使用stopPropagation
来停止事件冒泡。
$("body").on('keypress', ':text', function(e) {
e.stopPropagation();
这将仅在文本框上绑定事件,而不是body
。