如何在文本框中获取Enter键以触发函数而不是第一个/默认按钮
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在文本框中获取Enter键以触发函数而不是第一个/默认按钮相关的知识,希望对你有一定的参考价值。
我试图让Enter键在某个文本框内按下时触发一个函数,而不是触发第一个或默认按钮。
你可以看到这里发生的事情的一个例子:http://jsfiddle.net/cutsomeat/WZ6TM/1/
如果按其他键,您将收到一个带有键码的警告框,但是如果您按下Enter键,您将无法获得带有键码的警告框,而是按钮点击事件中的警告框。
显然,Enter键是触发按钮。有没有办法避免这种情况,而是在keyup事件中捕获Enter键,然后触发另一个函数?
答案
试试这个:
$('#myText').on("keypress", function(e) {
if (e.keyCode == 13) {
alert("Enter pressed");
return false; // prevent the button click from happening
}
});
另一答案
使用.on()
作为.live()
一直是deprecated。
$(document).on("keypress", ".myText", function(e) {
if (e.which == 13) {
//do some stuff
}
});
另一答案
在keyDown中执行e.preventDefault()
以避免按钮的默认操作:
$('#myText').keydown(function(e) {
if (e.keyCode == 13) {
e.preventDefault();
}
alert(e.keyCode);
});
另一答案
$(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!');
});
});
对于实时元素,请使用.on()
,如下所示:
$(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!');
});
});
以上是关于如何在文本框中获取Enter键以触发函数而不是第一个/默认按钮的主要内容,如果未能解决你的问题,请参考以下文章
C#:如何在文本框中按下输入触发按钮,但仍允许“Ctrl + A”等快捷方式通过?
如何在 keydown 事件后在文本框中按 enter 删除虚拟键盘
从嵌套 recyclerview 的所有输入框中获取所有编辑文本正在获取最新的 recyclerview 项目而不是所有数据