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

时间:2014-12-27 14:10:32

标签: javascript jquery html5 validation

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

我使用以下块来启动提交事件:

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

    event.preventDefault();
    saveData("personal_info");
});
function saveData(formName){
 console.log("test");
}

是否是在提交时调用函数saveData的默认行为,因为即使我的表单无效,函数也会被调用。

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

2 个答案:

答案 0 :(得分:2)

除非您在表单上使用novalidation属性,否则新的HTML5验证API不会提交无效表单。有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/Data_form_validation

答案 1 :(得分:1)

It works but should on submit be called if the form is not valid. 

无论何时提交表单#personal_info,都会运行提交功能。

提交功能似乎没有运行的原因是因为这行

event.preventDefault();

这可以防止发生默认操作,即提交表单。因此表单无法正常提交,因此您的网页不会重新加载/刷新。

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

与注释中的A. Wolff said一样,您可以在调用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");
}