我正在尝试使用.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或在模态中单击否,您将看到效果的差异。
答案 0 :(得分:0)
keypress
仅触发具有输入焦点的元素(及其父元素)。
您应该为整个文档处理keypress
,但只在用户能够关闭模式时添加处理程序(并在之后删除处理程序)。
答案 1 :(得分:0)
Keypress不是最好的选择,因为它不会返回与keydown或keyup相同的每个字符。
$("yourSelector").keydown(function(e){
if (e.keyCode == 13) {
//do something
}
});