2009-03-06 17 views
2

Auf meiner Seite habe ich Formulare, die standardmäßig auf .hide(), wenn die Seite geladen ist. Diese beiden Formen sind Kontoerstellung und Anmeldung. Sie werden dem Benutzer angezeigt, sobald sie auf den entsprechenden Link (.show()) klicken.jquery: Verbergen/Zeigen etwas nach Formular einreichen/Seite neu laden

Offensichtlich, wenn es einen Fehler mit einem Formular gibt, möchte ich, dass das Formular offen bleibt, anstatt sich zu verstecken, nachdem die Seite vom Senden geladen wurde.

Im Moment verwenden die Formulare einfache HTML-Formular-Buchung, um die Datenbank zu erreichen. Gibt es einen besseren Weg, dies mit jQuery zu tun, die nicht zu kompliziert ist? (Ich bin immer noch ziemlich neu, um es, aber Lernen)

Dank

Antwort

3

Sie können der Aktion "Senden" eines Formulars einen Handler zuweisen und damit alles tun, was Sie möchten. Senden Sie es asynchron, entfernen Sie das Formular erneut, lassen Sie es dort, was auch immer. Hier ist ein Ausgangspunkt:

$('#myloginform').submit(function() { 
    var form = $(this); 
    $.post(
    form.attr('action'), 
    form.serialize(), 
    success: function(response) { 
     // do something when all is well 
     form.hide(); 
    }, 
    failure: function(respones) { 
     // do something when everything explodes 
     form.addClass('error'); 
    } 
); 
    return false; // don't fire the regular handler 
}); 

Die Dokumentation jQuery API gibt Ihnen weitere Informationen zu dem beide submit (und ähnlichen) Handler sowie $.post und Freunden.

edit: Dieser Code in Ihre $(document).ready Handler gehen sollte, ich nehme an, Sie haben bereits Ihre show s und hide s drin.

0

Ich würde die jQuery Form Plugin versuchen. Es ermöglicht Ihnen, ein Formular mit Ajax zu posten.

Bei Erfolg können Sie den Browser dorthin umleiten, wo er normalerweise beim Senden angekommen wäre.

Bei einem Fehler können Sie eine Fehlermeldung anzeigen und den Benutzer auf dem Formular behalten.

+0

Ich habe versucht, dies vor nicht allzu langer Zeit, aber an einem Punkt verwirrt - vielleicht noch einmal schauen. Vielen Dank. – scrot

0

Angenommen, Sie können nicht mit ajax arbeiten, fügen Sie etwas zur URL oder zum Hauptteil der Seite hinzu, die besagt, dass ein Fehler aufgetreten ist. Dann mach sowas wie ..

Verwandte Themen