Javascript 如果表单无效,是否调用submit?

Javascript 如果表单无效,是否调用submit?,javascript,jquery,html,validation,Javascript,Jquery,Html,Validation,我想知道如果我的表单数据在html5验证中无效,是否会调用submit。例如,我有一个表单id个人信息 我使用以下块进入提交事件: $("#personal_info").submit(function(event) { event.preventDefault(); saveData("personal_info"); }); function saveData(formName){ console.log("test"); } 是函数saveData在提交时被调用的默认

我想知道如果我的表单数据在html5验证中无效,是否会调用submit。例如,我有一个表单id个人信息

我使用以下块进入提交事件:

$("#personal_info").submit(function(event) {

    event.preventDefault();
    saveData("personal_info");
});
function saveData(formName){
 console.log("test");
}
是函数saveData在提交时被调用的默认行为,因为即使我的表单无效,函数也会被调用

如果我的表单无效,如何防止调用提交函数

It works but should on submit be called if the form is not valid. 
无论何时提交您的表单#个人#信息,提交功能都将运行

submit函数没有运行的原因可能是因为这一行

event.preventDefault();
这将防止发生默认操作,即提交表单。因此表单不会正常提交,因此网页不会重新加载/刷新

即使表单无效,也可以调用submit。这没什么错。您的代码在您的问题中的方式是,saveData函数设置为每次运行,即使它无效。所以我们可以改变这种情况

就像注释中的A.Wolff一样,您可以在对saveData函数的调用周围包装一个if语句

所以你可以让你的代码看起来像这样

$("#personal_info").submit(function(event) {

    event.preventDefault();

    if ($(this).valid()) {         // if form is valid
        saveData("personal_info"); // then do this
    }
});
function saveData(formName){
 console.log("test");
}

新的HTML5验证API不会提交无效表单,除非您在表单上使用
novalidation
属性。有关详细信息,请参阅。

在提交处理程序顶部尝试:
if(!$(this).valid())返回
似乎有一个硬编码的调用
saveData
,我想说执行该函数是非常默认的JS行为。它可以工作,但如果表单无效,应该在提交时调用它。但是,感谢您解决了我的问题。当问题与此插件无关时,请不要使用标签。除非您在表单上使用novalidation属性,否则新的HTML5验证API不会提交无效表单。看见