我正在尝试按下某个键时触发事件。它可以正常使用此代码:
$(document).keypress(function(e){
switch(e.which){
case 96:$("a.quicklinks").trigger('click');
break;
}
但是,如果用户在表单字段中,我想禁用此行为。如何测试用户是否在表单字段中键入以执行此操作?感谢。
答案 0 :(得分:16)
$(document).keypress(function(e) {
if ($(e.target).is('input, textarea')) {
// event invoked from input or textarea
}
...
});
答案 1 :(得分:1)
也许你可以设置一个全局var
var disable_keyevents = false;
$('textarea,input')
.focus(function() { disable_keyevents = true })
.blur(function() { disable_keyevents = true; });
然后你只需在切换前检查$(document).keypress事件中disable_keyevents的值。
答案 2 :(得分:1)
当用户在表单中按下ASCII字符#96时,将触发此代码 - 您可以使用此代码禁用/修改此按键的“默认代码”。
$('#my_form_field').live('keypress', function(e) {
if (e.keyCode == 96) {
e.preventDefault();
// Do stuff.
}
});