2009-03-20 15 views

Respuesta

6

Si la función devuelve false , el formulario no será enviado.

$('#form').submit(function(){ 
    return validateForm1() 
      && validateForm(document.forms['dpart2']) 
      && validateForm(document.forms['dpart3']);           
       } 
}); 
3

Si ValidateForm (...) y validateForm1() devuelven un valor lógico (verdadero significa que no se produjo ningún error de validación), a continuación, intenta hacer eso:

$('#form').submit(function(){ 
    if (!validateForm1() || !validateForm(document.forms['dpart2']) || !validateForm(document.forms['dpart3'])) { 
     return false; 
    } 
}); 
7
$('#form').submit(function(){ 
    return (validateForm1() && 
      validateForm(document.forms['dpart2']) && 
      validateForm(document.forms['dpart3'])) 
}); 

Básicamente, return false en la función de controlador de eventos.

3

Una idea que surge automáticamente: incluso si implementó una validación exhaustiva del lado del cliente, prepárese para recibir datos de solicitudes inválidas en el servidor que pueda imaginar.

La validación del lado del cliente nunca lo aleja de la validación del lado del servidor. Es solo una ventaja en usabilidad.

4

De acuerdo, algunas de las otras soluciones tendrán un error lento ... es probable que desee que se ejecute toda su validación, para que se muestren todos los errores. La presunción es que sus métodos de validación devolverán falso si fallan.

$("#myform").submit(function() { 

    var ret = true; 
    ret = validateForm1() && ret; 
    ret = validateForm(document.forms['dpart2']) && ret 
    ret = validateForm(document.forms['dpart3'])) && ret 
    return ret; 

});

De esta forma se invocarán todos sus validadores, pero el valor booleano de cualquier falla dará como resultado un error.

Cuestiones relacionadas