Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何防止在输入时提交表单_Jquery_Html - Fatal编程技术网

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键。我的目标是为这些用户提供最少的惊喜,而不是教育他们。