自定义表单验证表单

问题描述:

我想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(); 
     }    
    }); 
}); 
+0

编辑的问题 –

+0

从你说的IE验证代码中有一个错误,这停止了javascript的执行,因此你永远不会返回false,然后表单提交。您应该更正相对于IE中的slideDown的错误,并且一切都应该工作 –

+0

validarFormulario()在IE中返回true或false? – simonlchilds

e.preventDefault();防止你把它改成最后一行。

+0

如果(validarFormulario ()== true){ \t \t \t $('#form_arc_packages')。submit(); \t \t} \t \t e.preventDefault(); ?? –

+0

试试尼古拉Peluchetti说,'返回false' [JQ]或preventdDefault – Red

+0

编辑的问题 –

我认为你总是阻止默认操作,您应该防止它只有当你没有通过验证:

$(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; 
     } 
    }); 
}); 
+0

编辑的问题 –