Jquery按键级联

时间:2015-04-26 13:20:41

标签: jquery events keypress

我有一些文本框需要只接受小于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);
});

}

1 个答案:

答案 0 :(得分:0)

您已在body上绑定该活动。您应该在输入上绑定事件。 您可以使用stopPropagation来停止事件冒泡。

$("body").on('keypress', ':text', function(e) {
    e.stopPropagation();

这将仅在文本框上绑定事件,而不是body

参考:https://api.jquery.com/on/