【问题标题】:Enter key with multiple forms on a website在网站上输入具有多种形式的密钥
【发布时间】:2011-03-02 15:36:03
【问题描述】:

我有一个包含 2 个表单的网站。一个用于搜索,另一个用于登录。当我使用回车键提交时,总是调用搜索,因为它是页面上的第一个表单。

我想要做的是在某个文本框具有焦点时对 Enter 键进行编程以单击某个按钮。

我正在使用 asp:textbox 和 asp:button 作为我的登录表单。

【问题讨论】:

  • HTML 方面是一种形式在另一种形式中吗?
  • 整个网站实际上有 1 个表单标签,因为您在网页中只能有 1 个 runat=server。基本上它是一个登录视图和一个 asp:textbox 和一个 asp:button 本身(用于搜索)。

标签: html vba key enter


【解决方案1】:

创建一个全局变量来跟踪焦点所在的表单:

<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();
   }
 }

【讨论】:

  • 第二部分看不懂。 globalKeyPressed 在哪里声明?
  • 页面中某个脚本块中的某个位置。然后,您必须使其成为全局按键事件的侦听器。类似“window.onkeypress = globalKeyPressed;”的东西
【解决方案2】:

如果您使用的是 asp.net webforms,那么您可以使用 Panel 控件。 Panel 控件有一个 DefaultButton 属性,您将其设置为 asp.net 按钮控件的 ID。当该面板中的任何控件获得焦点时,默认按钮将是引用的按钮。

【讨论】:

    【解决方案3】:

    效果很好:

    $('form[name=yourformname]').submit(function(){...});

    【讨论】:

      猜你喜欢
      • 2014-12-01
      • 2021-02-01
      • 1970-01-01
      • 2022-01-09
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多