我们有一个包含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)),但没有看到这样的例子。感谢。
答案 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中输入您的代码,然后只提交该表单。