首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果表单无效,是否会调用submit?

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

Stack Overflow用户
提问于 2014-12-27 22:10:32
回答 2查看 2.9K关注 0票数 3

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

我使用下面的代码块来获取提交事件:

代码语言:javascript
运行
复制
$("#personal_info").submit(function(event) {

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

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

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

EN

回答 2

Stack Overflow用户

发布于 2016-12-15 02:25:02

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

票数 3
EN

Stack Overflow用户

发布于 2014-12-27 23:59:36

代码语言:javascript
运行
复制
It works but should on submit be called if the form is not valid. 

只要提交表单#personal_info,submit函数就会运行。

之所以看起来提交函数没有运行,是因为下面这一行

代码语言:javascript
运行
复制
event.preventDefault();

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

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

就像注释中的A.Wolff said一样,您只需在调用saveData函数时使用if语句即可。

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

代码语言:javascript
运行
复制
$("#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");
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27668018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档