2011-01-08 14 views
0

der HTML-Code:jquery --- Validierung der Form

<labelName</label> 
    <input type="text" name="name" id="name" size="30" value="" class="text-input" /> 
    <label class="error" for="name" id="name_error">This field is required.</label> 

der js Code:

   var name = $("input#name").val(); 
    if (name == "") { 
    $("label#name_error").show(); 
    $("input#name").focus(); 
    return false; 
    } 

warum verwenden Sie die return false ;? Könnte ich den Ausgang benutzen? Danke.

Antwort

1

Unter der Annahme, dass Ihr Validierungscode auf einem onSubmit Ereigniskette wie in

$('form').onSubmit(function(event) { 
    // do validation 
    return false; 
} 

return false verwendet wird aufgerufen, um die Formularübermittlung zu blockieren, um fortzufahren. Ohne sie wird die Formularübertragung fortgesetzt und die Aktionsseite wird geladen.

anders als "return false;", können Sie auch "event.preventDefault();" um die Formularübermittlung zu blockieren.

Die gleiche Methode könnte auch in anderen Fällen verwendet werden. Zum Beispiel, wenn Sie ein Click-Ereignis von einem Link blockieren wollen (die standardmäßig die Seite auf href angegeben laden würde), könnten Sie tun:

$('a').click(function(event) { 
    event.preventDefault(); 
    return false; 
} 
+0

aber auf diese Weise müssen Sie Post senden, nachdem Sie Felder validieren, richtig? –

+0

nicht unbedingt .. wenn Sie möchten, dass das Formular im Hintergrund mit Ajax eingereicht wird, ohne die Seite neu zu laden .. dann ja .. Sie müssen das Formular serialisiert dann gesendet mit Post .. aber, wenn Sie es einfach tun möchten eine clientseitige js-Validierung .. Sie können validieren und dann die falsche IF-Validierung fehlschlagen .. natürlich müssen Sie nicht false oder preventDefault zurückgeben, wenn die Validierung erfolgreich war. –

0

Wenn Sie return false, verhindern Sie eigentlich das Standardverhalten (Übermittlung in diesem Fall).

+0

könnte ich Return 0 oder Exit verwenden? – runeveryday

+1

@runeveryday - Verwenden Sie einfach Return false. Es ist das, was die meisten Leute erwarten würden, um das Verhalten zu unterdrücken. Sie können möglicherweise return 0 verwenden, aber warum sollten alle anderen darüber nachdenken, was Sie tun, wenn sie eines Tages Ihren Code betrachten und versuchen, einen systemkritischen Fehler zu beheben? Wenn Sie neugierig sind, ist nichts falsch daran. Probieren Sie es :) Aber bitte verwenden Sie falsch. – jmort253

0

Da keine dort exit in Javascript ist!

Verwandte Themen