繁体   English   中英

通过jQuery或JavaScript按Enter键时检测选定的表单

[英]Detect selected form when Enter key is pressed via jQuery or JavaScript

我们有一个包含2个表单的网页,其中包含多个字段。 第一个表格具有客户帐单邮寄地址,第二个表格具有付款信息。 当客户按下Enter键时,始终会提交帐单邮寄地址表单,而不管焦点所在的字段是否在第二个付款信息表单中。

该页面需要识别用户的上下文,以便如果第二个表单中的字段具有焦点,并且该人按下Enter键,则该第二个表单应提交,而不是第一个表单。

我熟悉检测keypress事件,并使用了如下脚本:

  detectEnterKey: function () {
      $('body').live('keyup', function (e) {
         if (e.keyCode == 13) {// 'enter' key 
            // Do something
         }
      });
      $('form').keypress(function (e) {
         if (e.which === 13) {
            // Do something
         }
      });
  },

我不知道该怎么做,就是检测表单上下文以了解要提交的表单。 我怀疑它可能在事件(功能(e))中可用,但是还没有看到这样的例子。 谢谢。

当您按Enter键并提交表单时,您会发现该表单是具有焦点的字段的父级。

$('.input').keyup(function(e) {
if(e.keyCode == 13) {
 $(this).parent().find('.form').submit();
}
});

由于您正在使用JQuery,因此添加JQueryUI并使用selectable。 这是您想要的非常方便的工具。

http://jqueryui.com/selectable/

您可以选择任何DOM元素。 另外,为什么使用“ enter”而不是“ del”,我认为使用Delete键会更有意义。

您始终可以使用document.activeElement来获取焦点元素。 这样,您可以检查表单的焦点,而不是仅提交表单。 只需签入您的代码中的activeElement是其中之一,然后仅提交该表单即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM