2013-06-01 7 views
5

Ok, das Setzen von preventDefault auf meine Submit-Schaltfläche funktioniert, um die Formularübergabe zu stoppen. Die Folge davon ist, dass es dem Benutzer nicht die erforderlichen Felder mitteilt und nur das Klickereignis auf der Schaltfläche ausführt.Kombinieren Sie jQuery preventDefault und die erforderlichen Formulareingaben

Das Hinzufügen von preventDefault zum Übergabe-Handler zeigt dem Benutzer die erforderlichen Felder an, löst aber immer noch das Klickereignis aus, das mit der Schaltfläche verknüpft ist.

Ich brauche beide. Jetzt

<form action="" method="post"> 
    <input type="text" class="class" id="id" name="name" required="required" /> 
</form> 

die js:

$("button").click(function(event){ 
    event.preventDefault(); 
    //performs function 
}); 

Dies wird das Click-Ereignis ausgelöst, unabhängig von einer erforderlichen Formulareingabe.

Dies wird eine erforderliche Nachricht für den Benutzer anzeigen, aber weiterhin die Funktion "Senden" ausführen. Wie mache ich beides? Ich habe mir einige andere SO-Fragen angeschaut, die ich finden konnte, aber es scheint, dass die meisten durch Hinzufügen von preventDefault zu form.submit beantwortet werden könnten.

+0

Versuchen Sie, diese '$ ("Form") einreichen (function (event) { return false; });.' –

Antwort

4

Ich habe tatsächlich versucht, zwei Dinge zu tun, wenn ich nur einen tun musste.

Ich brauchte die button.click-Funktion überhaupt nicht, da sie standardmäßig das Formular abgibt. Ich musste nur die button.click -Funktion innerhalb von form.submit setzen.

$("form").submit(function(event){ 
    //perform button function 
    return false; 
}); 
+0

ja! Das scheint jetzt so offensichtlich, danke! :) – andrei

0

Das Submit-Ereignis manuell auslösen.

$("button").click(function(event) { 
    event.preventDefault(); 

    $('form').submit(); 
}); 
Verwandte Themen