输入字段类型文本有多个一次性的onkeypress调用函数

时间:2011-07-13 04:41:22

标签: javascript-events

函数fb()是

function fb() {    
        $("#Keywordtextbox").keypress(function (event) {
            if (event.keyCode == 13) {
                alert('123');
              //  document.getElementById('AddButton').click();
            }
        });           
} 

我的问题是当我点击第二次点击输入事件不点火时它显示我警报框当我点击第三次它显示我警报三次所以我如何处理该事件所以输入键按下一次这个fb()函数调用

1 个答案:

答案 0 :(得分:2)

你不应该在onKeyPress中调用fb并注册.keypress jQuery事件。做一个或另一个,而不是两个!您已经对重要事件进行了双重注册,然后在第一个密钥之后,您将获得三重注册。

当你得到一个键事件时,它调用fb()并调用.keyPress的内部函数处理程序。当再次调用fb()时,您最终会再次注册keypress事件,并且每次按下新键时都会发生这种情况。

我建议你从HTML中删除onkeypress = fb()。

然后,只需在启动代码中调用fb()一次即可注册keypress事件处理程序。在那之后,你应该每次按下一个关键事件。

以下是一个有效的例子:http://jsfiddle.net/jfriend00/Zyftj/

HTML:

<input type="text" id="Keywordtextbox"  maxlength="30" style="width:100px"> 

JS(在页面就绪处理程序中调用):

$("#Keywordtextbox").keypress(function (event) {
    if (event.keyCode == 13) {
        console.log("123");
    }
});