我正在使用单例模式来创建表单处理脚本......
我不想发布所有代码,但第一种方法使用preventDefault:
//public methods
handleSubmit: function (e) {
//prevent the default submission process
e.preventDefault();
},
preventDafault执行劫持表单以停止服务器端处理的操作。
然后我创建了验证规则......如果所有验证规则都通过,则使用此方法完成:
validData: function (error) {
if (error.length === 0) {
return true;
} else {
// If there are errors in the form then run alert message
alert(error);
}
},
那就是如果没有错误那么服务器端脚本处理表单并且项目被添加到数据库中(我没有使用AJAX,因为我有图像问题)
然而,返回true在这里不起作用......我不知道为什么,但我确信它有一个非常简单的原因
答案 0 :(得分:0)
你可以跳过preventDefault函数,只是做这样的事情吗?
var hasErrors = false;
if(myLogicHasErrors){
hasErrors = true;
}
if(hasErrors) return false;
除非您的验证检查通过,否则它会阻止表单提交而不会阻止默认设置。