我有一个包含 2 种表格的网站。一个用于搜索,另一个用于登录。当我使用回车键提交时,总是调用搜索,因为它是页面上的第一个表单。
我想要做的是编程输入键以在某个文本框具有焦点时单击某个按钮。
我正在使用 asp:textbox 和 asp:button 作为我的登录表单。
如果您使用的是 asp.net webforms,那么您可以使用 Panel 控件。Panel 控件有一个 DefaultButton 属性,您将其设置为 asp.net 按钮控件的 ID。当该面板中的任何控件获得焦点时,默认按钮将是引用的按钮。
创建一个全局变量来跟踪焦点的形式:
<script> var currentForm = document.forms[0];</script>
<form ...><input onfocus="currentForm = this.form;"/></form>
<form ...><input onfocus="currentForm = this.form;"/></form>
将键盘处理程序附加到窗口,查找 Enter 键,然后当它被击中时提交被聚焦的表单:
function globalKeyPressed(event) {
if (event.keyCode == ENTER) { // This is pseudo-code, check how to really do it
currentForm.submit();
}
}
这完美地工作:
$('form[name=yourformname]').submit(function(){...});