如何在jquery中使用.keypress()?

时间:2012-02-24 22:00:22

标签: javascript jquery html

我正在尝试使用.keypress(),因为我需要用户能够按下Enter键并单击我的模态按钮(此按钮关闭模态)。当我编码:

$(document).keypress(function () { console.log('keypress'); });

它可以工作,但我显然不能在文件上,否则或点击输入将随时关闭我的模态。所以我尝试了这个(这是我的模态的id):

$('#confirmModal').keypress(function () { console.log('keypress'); });

但它不起作用。所以我认为可能是因为在用户点击取消之前页面上还没有模态,所以我尝试了:

$('#AddLeadGeneral').on('keypress', '#confirmModal', function () {
    console.log('.on keypress');
});

但这不起作用。有趣的是,如果我在我的.on()函数中用'click'替换'keypress'它就足够了。我认为我对keypress的了解还不够充分。基本上,对于我的模态,当一个命中输入时,默认按钮应该是'否',因此应该关闭模态,就像它们点击它一样。有谁知道如何使这项工作?

步骤:点击页面底部的取消,然后按Enter或在模态中单击否,您将看到效果的差异。

https://scrmqa.autobase.net/Opportunity/General?leadType=FloorUp&searchType=CustomerSearch&firstName=&lastName=x&phone=&address=&postalCode=&emailAddress=&

2 个答案:

答案 0 :(得分:0)

keypress仅触发具有输入焦点的元素(及其父元素)。

您应该为整个文档处理keypress,但只在用户能够关闭模式时添加处理程序(并在之后删除处理程序)。

答案 1 :(得分:0)

Keypress不是最好的选择,因为它不会返回与keydown或keyup相同的每个字符。

$("yourSelector").keydown(function(e){
    if (e.keyCode == 13) {
        //do something
    }
});