自定义表单验证表单
我想submiting形式之前验证投入少,我这样做自定义表单验证表单
$(document).ready(function(){
$('#form_arc_packages').submit(function(e){ /*should i use focus or similar, here?*/
e.preventDefault();
if(validarFormulario()==true){
$('#form_arc_packages').submit(); /*Am i starting an infinite loop, here?*/
}
});
});
其中
function validarFormulario(){
var valido = true;
$('.errorCanc').slideUp();
var fecha1=$('#date1').val();
var fecha2=$('#date2').val();
var area1=$('#area1').val();
var area2=$('#area2').val();
if (fecha1.length < 1){ $('#date1').next('.errorCanc').slideDown(); valido = false; }
if (fecha2.length < 1){ $('#date2').next('.errorCanc').slideDown(); valido = false; }
if (area1.length < 1){ $('#area1').next('.errorCanc').slideDown(); valido = false; }
if (area2.length < 1){ $('#area2').next('.errorCanc').slideDown(); valido = false; }
return valido;
}
只是检查的输入lenght,现在,但问题是,表单不会所需提交(即使所有的输入设置与执行console.log我正在确保validarFormulario返回true),
编辑
而且这样的:
$(document).ready(function(){
$('#form_arc_packages').submit(function(e){
if(validarFormulario()==true){
$('#form_arc_packages').submit();
}else{
//Post didn't pass validation, so prevent posting
e.preventDefault(); return false;
}
});
});
似乎在Firefox,但例如好的工作,在IE7中,它显示错误(用了slideDown),然后剧照提交表单... CNC中忽略此,这是因为我使用的console.log()
。工作正常。
我在做什么错了?
改成这样......
$(document).ready(function(){
$('#form_arc_packages').submit(function(e){
if(validarFormulario()==false){
e.preventDefault();
}
});
});
e.preventDefault();
防止你把它改成最后一行。
如果(validarFormulario ()== true){ \t \t \t $('#form_arc_packages')。submit(); \t \t} \t \t e.preventDefault(); ?? –
试试尼古拉Peluchetti说,'返回false' [JQ]或preventdDefault – Red
编辑的问题 –
我认为你总是阻止默认操作,您应该防止它只有当你没有通过验证:
$(document).ready(function(){
$('#form_arc_packages').submit(function(e){ /*should i use focus or similar, here?*/
if(validarFormulario()==true){
$('#form_arc_packages').submit(); /*Am i starting an infinite loop, here?*/
}else{//Post didn't pass validation, so prevent posting
return false;
}
});
});
编辑的问题 –
编辑的问题 –
从你说的IE验证代码中有一个错误,这停止了javascript的执行,因此你永远不会返回false,然后表单提交。您应该更正相对于IE中的slideDown的错误,并且一切都应该工作 –
validarFormulario()在IE中返回true或false? – simonlchilds