How to get the Enter key within a textbox to trigger a function and not the first/default button
我试图让Enter键在某个文本框内按下时触发一个函数,而不是触发第一个或默认按钮。
你可以看到这里发生的事情的一个例子:http://jsfiddle.net/cutsomeat/WZ6TM/1/
如果按其他键,您将收到一个带有键码的警告框,但是如果您按下Enter键,您将无法获得带有键码的警告框,而是按钮点击事件中的警告框。
显然,Enter键是触发按钮。 有没有办法避免这种情况,而是在keyup事件中捕获Enter键,然后触发另一个函数?
试试这个:
1 2 3 4 5 6 | $('#myText').on("keypress", function(e) { if (e.keyCode == 13) { alert("Enter pressed"); return false; // prevent the button click from happening } }); |
演示
使用
1 2 3 4 5 | $(document).on("keypress",".myText", function(e) { if (e.which == 13) { //do some stuff } }); |
在keyDown中执行
1 2 3 4 5 6 | $('#myText').keydown(function(e) { if (e.keyCode == 13) { e.preventDefault(); } alert(e.keyCode); }); |
1 2 3 4 5 6 7 8 9 10 11 12 13 | $(document).ready(function() { $('#myText').keypress(function(e) { if ( e.keyCode == 13 ) { // detect the enter key $('#myButton').click(); // fire a sample click, you can do anything } }); $('#myButton').click(function(e) { alert('Button click activated!'); }); }); |
DEMO
对于实时元素,使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $(document).ready(function() { $(document).on('keypress', '#myText', function(e) { if ( e.keyCode == 13 ) { // detect the enter key $('#myButton').click(); // fire a sample click, you can do anything } }); $(document).on('click', '#myButton', function(e) { alert('Button click activated!'); }); }); |