在input或textarea字段中禁用jquery keypress

我正试图在按下某个键时触发事件。 它适用于以下代码:

$(document).keypress(function(e){ switch(e.which){ case 96:$("a.quicklinks").trigger('click'); break; } 

但是,如果用户在表单字段中,我想禁用此行为。 如何测试用户是否在表单字段中键入以执行此操作? 谢谢。

 $(document).keypress(function(e) { if ($(e.target).is('input, textarea')) { // event invoked from input or textarea } ... }); 

也许你可以设置一个全局var

 var disable_keyevents = false; $('textarea,input') .focus(function() { disable_keyevents = true }) .blur(function() { disable_keyevents = true; }); 

然后你只需在切换前检查$(document).keypress事件中的disable_keyevents的值。

当用户在表单中按下ASCII字符#96时,将触发此代码 – 您可以使用此代码禁用/修改此按键的“默认代码”。

 $('#my_form_field').live('keypress', function(e) { if (e.keyCode == 96) { e.preventDefault(); // Do stuff. } });