我在页面上有多个提交按钮。我想要的是如果用户在任何输入字段上按Enter键,它应该单击相关的提交按钮。我尝试了下面的方式,但它甚至无法抓住输入字段上的按键。
提前致谢,
$('* input').keypress(function (e) {
if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
$(this).closest('input[type=submit]').click();
}
});
答案 0 :(得分:5)
试试这个。除非提交按钮位于DOM树的上方,否则.closest()
将无效。相反,你可以在输入的parentNode中搜索它,或者只提交表单(但你可能没有表单元素,因为否则这将是enter键的默认行为)。
$(document).ready(function() {
$('input[type="text"], input[type="password"]').keypress(function (event) {
if (event.keyCode == '13') { //jquery normalizes the keycode
event.preventDefault(); //avoids default action
$(this).parent().find('input[type="submit"]').trigger('click');
// or $(this).closest('form').submit();
}
});
});
答案 1 :(得分:1)
根本不需要javascript!
输入密钥将调用"隐式提交"按标准。当表格中有多个输入[type = submit]时,第一个将隐式"点击"通过回车。因此,您应该将默认按钮放在第一个。
如果要交换某些按钮,请使用CSS规则。
关于按钮和Enter键的一些有趣事实是here。