【发布时间】:2011-04-12 14:35:35
【问题描述】:
我正在尝试在按下回车键时运行一个方法。此方法已被按钮使用。基本上,当用户填写文本字段并单击提交按钮时,他们会得到一个灯箱。我想要做的是运行相同的操作,但是当按下回车键时。我研究过使用 .keypress 但我只能找到表单标记是标准 html 表单标记而不是 asp.net 表单标记的示例。我认为目前表单仅响应页面上的 .net 控件,我无法使用 jquery 方法覆盖它。有什么想法吗?
【问题讨论】:
我正在尝试在按下回车键时运行一个方法。此方法已被按钮使用。基本上,当用户填写文本字段并单击提交按钮时,他们会得到一个灯箱。我想要做的是运行相同的操作,但是当按下回车键时。我研究过使用 .keypress 但我只能找到表单标记是标准 html 表单标记而不是 asp.net 表单标记的示例。我认为目前表单仅响应页面上的 .net 控件,我无法使用 jquery 方法覆盖它。有什么想法吗?
【问题讨论】:
您可以将keypress 事件绑定到文档,并将trigger() 处理程序绑定到您的按钮。
$(document).bind('keypress', function(e){
if(e.which === 13) { // return
$('#buttonid').trigger('click');
}
});
只要您在网站上按回车键,就会触发此事件。如果有人在您的输入表单中使用return,您可能希望它只发生。您只需要将 selector 从 document 更改为与您的控件匹配的任何类型的选择器。
参考:.trigger()
【讨论】:
$(document).keydown(function(e) {
// test for the enter key
if (e.keyCode == 13) {
// Do your function
myFunction();
}
});
【讨论】:
$(".input_loginform").keypress(function(e){
if (e.which == 13){
e.preventDefault();
alert("User pressed 'Enter' in a text input. sender form #"+this.form.id);
postlogin("#"+this.form.id);
}
});
【讨论】:
var ENTER_KEY = 13;
var user_key;
$(document).on('keydown', function(e){
user_key = e.keyCode || e.which
if(user_key === ENTER_KEY) {
document.querySelector("#button").click();
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="button" onclick="console.log('button pressed')">button</button>
【讨论】: