Jquery 如何防止在输入时提交表单
我有一个在Jquery 如何防止在输入时提交表单,jquery,html,Jquery,Html,我有一个在行中带有“required”的表单。问题是,如果我用Enter终止一个字段值,我会在下一个字段中得到一个恼人的“请填写此字段”,因为它显然想在Enter时提交表单。理想情况下,我希望将keycode13映射到9,因为如果在字段值之后输入Tab,即只移动到下一个字段,就会出现我想要的行为 我试过了 $("form#checkout_form").keypress(function(e) { if(e.keyCode == 13) { e.keyCode = 9;
行中带有“required”的表单。问题是,如果我用Enter终止一个字段值,我会在下一个字段中得到一个恼人的“请填写此字段”,因为它显然想在Enter时提交表单。理想情况下,我希望将keycode13映射到9,因为如果在字段值之后输入Tab,即只移动到下一个字段,就会出现我想要的行为
我试过了
$("form#checkout_form").keypress(function(e) {
if(e.keyCode == 13) {
e.keyCode = 9;
}
});
但这不起作用。有人有其他想法吗
谢谢将函数绑定到表单的onsubmit
事件以执行必要的验证。通过在此函数中返回false
,可以停止表单提交
防止Enter尝试提交表单的另一种方法是删除
,并将其替换为按下时将调用表单的任何其他链接。submit()
。它甚至可以是一个模仿经典提交按钮的
。按Enter键不会提交没有
的表单。将函数绑定到表单的onsubmit
事件以执行必要的验证。通过在此函数中返回false
,可以停止表单提交
防止Enter尝试提交表单的另一种方法是删除
,并将其替换为按下时将调用表单的任何其他链接。submit()
。它甚至可以是一个模仿经典提交按钮的
。按Enter键不会提交没有
的表单。将其放入事件处理程序中:
e.preventDefault();
将其放入事件处理程序中:
e.preventDefault();
将e.keyCode设置为9不会将焦点移动到下一个输入,请尝试:
$("form input").keydown(function(e) {
if(e.keyCode == 13){
e.preventDefault(); // cancel default Enter key behaviour
$(this).next('input').focus();
}
});
将e.keyCode设置为9不会将焦点移动到下一个输入,请尝试:
$("form input").keydown(function(e) {
if(e.keyCode == 13){
e.preventDefault(); // cancel default Enter key behaviour
$(this).next('input').focus();
}
});
也许e.preventDeault()
可以在这里帮助您。这种行为在任何地方都是标准的,没有学会使用Tab导航字段的用户将改用鼠标,因为不管喜欢与否,他们最终学会了按Enter键不是这样做的方法。我看到的是,您创建了一个用户界面原则的例外。如果你坚持的话,你可以这样做,但那真的是你想要的吗?是的,我想这就是我想要做的。本产品特别适用于非技术用户,他们希望看到最直观的东西,即填写字段后按Enter键。我的目标是向这些用户提供最少数量的惊喜,而不是教育他们。也许e.preventDeault()
可以在这里帮助您。这种行为在任何地方都是标准的,没有学会使用Tab导航字段的用户将改为使用鼠标,因为不管喜欢与否,他们最终学会了按Enter键不是实现这一点的方法。我看到的是,您创建了一个用户界面原则的例外。如果你坚持的话,你可以这样做,但那真的是你想要的吗?是的,我想这就是我想要做的。本产品特别适用于非技术用户,他们希望看到最直观的东西,即填写字段后按Enter键。我的目标是为这些用户提供最少的惊喜,而不是教育他们。