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

时间:2014-05-28 13:28:22

标签: javascript jquery forms

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

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

我熟悉检测按键事件,并使用这样的脚本来执行此操作:

  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)),但没有看到这样的例子。感谢。

3 个答案:

答案 0 :(得分:0)

在按Enter键并提交时,您会找到具有焦点的字段的父表单。

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

答案 1 :(得分:0)

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

http://jqueryui.com/selectable/

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

答案 2 :(得分:0)

您始终可以使用document.activeElement来获取焦点元素。有了这个你可以检查哪个表格有焦点而不是只提交那个。 只需在activeElement中输入您的代码,然后只提交该表单。