我试图让 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()
as.live()
已被弃用。
$(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!');
});
});