Domanda

Come faccio a verificare che il modulo non presenterà se una delle convalide è falso?

$('#form').submit(function(){
    validateForm1();
    validateForm(document.forms['dpart2']);
    validateForm(document.forms['dpart3']);                     
}); 
È stato utile?

Soluzione

Se la funzione restituisce falso, non verrà sottoposto

forma.

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

Altri suggerimenti

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

In sostanza, si ritorna falso nella funzione gestore di eventi.

D'accordo, alcune delle altre soluzioni avranno un pigro non riescono ... probabilmente si desidera tutta la convalida per l'esecuzione, in modo che vengano visualizzati tutti gli errori. La presunzione è che i vostri metodi di validazione torneranno false se non riescono.

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

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

});

In questo modo tutti i validatori saranno chiamati, ma il valore booleano per qualsiasi guasto, si tradurrà in un esito negativo.

Se ValidateForm (...) e validateForm1 () restituiscono un valore booleano (vero significa che si è verificato alcun errore di convalida), quindi si tenta di farlo:

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

Un pensiero che viene in su automaticamente: Anche se è stato implementato validazione lato client approfondita essere pronto a ricevere i dati di richiesta non validi sul server che si possa immaginare

.

validazione lato client non ti impedisce di convalida sul lato server. E 'solo un bonus in termini di usabilità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top