在将表单提交给php之前,我正在进行jquery检查:
$(document).ready(function(){
$("#submit").submit(function(e){
var vari1 = $("#inputhidden1").val();
var vari2 = $("#inputhidden2").val();
if(vari1 == 1) {
if(vari2 == 1) {
$("#submit").submit();
} else {
e.preventDefault();
}
} else {
e.preventDefault();
}
});
});
如果每个if子句返回TRUE,则应正常处理表单操作,但是: 相反,我的浏览器崩溃,控制台告诉我:
to much recursion..
有人可以帮助我吗?
问候
答案 0 :(得分:2)
仅在检查后提交表单,如果错误返回false,则返回true。返回false将取消表单的提交。
$(document).ready(function(){
$("#submit").submit(function(e){
var vari1 = $("#inputhidden1").val();
var vari2 = $("#inputhidden2").val();
if(vari1 == 1) {
if(vari2 == 1) {
return true; // ok, submit
}
}
return false; // error, cancel submit
});
});
为了使这个更小,你可以做
$(document).ready(function(){
$("#submit").submit(function(e){
var vari1 = $("#inputhidden1").val();
var vari2 = $("#inputhidden2").val();
return (vari1 == 1 && vari2 == 1);
});
});
修改强>
你错了。
调用$("#submit").submit();
只是触发提交事件,因为您的表单检查在此事件中,您不需要调用submit(),您已经在提交内。您需要做的是return true
实际上“发送”提交,return false
取消提交。