题
我如何确保表单不会提交,如果验证的一个是假的?
$('#form').submit(function(){
validateForm1();
validateForm(document.forms['dpart2']);
validateForm(document.forms['dpart3']);
});
解决方案
如果该函数返回假,形式将不被提交。
$('#form').submit(function(){
return validateForm1()
&& validateForm(document.forms['dpart2'])
&& validateForm(document.forms['dpart3']);
}
});
其他提示
$('#form').submit(function(){
return (validateForm1() &&
validateForm(document.forms['dpart2']) &&
validateForm(document.forms['dpart3']))
});
基本上,在事件处理函数返回false。
好了,一些其他的解决方案将有一个懒惰的失败......你可能希望所有的验证运行,以便显示所有错误。推定的是,您的验证方法将返回如果他们失败假的。
$("#myform").submit(function() {
var ret = true;
ret = validateForm1() && ret;
ret = validateForm(document.forms['dpart2']) && ret
ret = validateForm(document.forms['dpart3'])) && ret
return ret;
});
这样,所有你的校验器将被调用,但对于任何失败的布尔值,将导致失败。
如果validateForm(...)和validateForm1()返回一个布尔值(true意味着没有发生验证错误),然后尝试做到这一点:
$('#form').submit(function(){
if (!validateForm1() || !validateForm(document.forms['dpart2']) || !validateForm(document.forms['dpart3'])) {
return false;
}
});
一个以为自动出现:即使你实现彻底客户端验证准备接收,你都不可能想象服务器上的任何无效的请求的数据
。客户端验证从来没有让你从服务器端验证。它只是在可用性的奖金。
不隶属于 StackOverflow