You can check the purpose of the event ( more information here )
$(document).keydown(function(e) { //var target = (e.target) ? e.target : e.srcElement; // IE uses srcElement // jQuery seems to handle this, so e.target should be fine if(e.target.nodeName != 'INPUT') { switch(e.which) { case 39: $("#next").trigger('click'); break; case 37: $("#prev").trigger('click'); break; } } });
or you can prevent this event from being activated by adding an event handler to the input elements:
$('input').keydown(function(e) { e.stopPropagation(); });
Update:
Similarly, you can test the node name for TEXTAREA .
Here is an example: http://jsfiddle.net/86CKw/1/
source share