zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden event.preventDefault() aufheben / Formular normal absenden.

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 10.05.2010, 15:01
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 14.12.2007
Beiträge: 9
amasingh befindet sich auf einem aufstrebenden Ast
Standard event.preventDefault() aufheben / Formular normal absenden.

Hallo,

ich möchte ein Formular ganz normal ohne JS abschicken. Bei Usern mit JS wird vorher das Absenden abgefangen und das Formular validiert. Anschließend möchte ich es jedoch trotzdem normal absenden.

Gibt es eine Möglichkeit das "event.preventDefault()" "aufzuheben"?

Falls es eine Rolle spielt: ich nutze jQuery

Gruß, amasingh
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 10.05.2010, 15:32
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.931
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Wieso nutzt du das überhaupt? Das ist im Falle eines Formulares nicht nötig, da reicht ein return false
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 10.05.2010, 15:46
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 14.12.2007
Beiträge: 9
amasingh befindet sich auf einem aufstrebenden Ast
Standard

Bei nem return false wird die Abarbeitung der Funktion aber auch gestoppt.
Ich möchte aber folgendermaßen vorgehen:

- User sendet das Formular.
- Javascript stoppt das Versenden und prüft nun erstmal die Daten (wird per Post an den Server gedendet und ein JSON Objekt mit evtl Fehlern zurückgegeben)
- # Ist das Formular in ordnung so schicke es nun doch ab.
# Ist Das Formular nicht in Ordnung gebe die Fehler mit JS aus.

Hier die Funktion:
Code:
$('#myForm').bind('submit', function(event) {
        event.preventDefault()
        $.post('/target/bla',$(this).serialize(),function(json){
            if(json.success){
                //FORMULAR ENDGÜLTIG ABSENDEN.
            }
            else{
                alert(json.feedback);
            }
        },'json');		
    });
Mit Zitat antworten
  #4 (permalink)  
Alt 10.05.2010, 15:47
Benutzerbild von fox
fox fox ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 11.09.2006
Beiträge: 1.011
fox sorgt für eine eindrucksvolle Atmosphärefox sorgt für eine eindrucksvolle Atmosphäre
Standard

Code:
$('#myForm').bind('submit', function(event) {
        $.post('/target/bla',$(this).serialize(),function(json){
            if(json.success){
                //FORMULAR ENDGÜLTIG ABSENDEN.
                $('#myForm').submit();
            }
            else{
                alert(json.feedback);
            }
        },'json');
        return false;		
    });
Mit Zitat antworten
  #5 (permalink)  
Alt 10.05.2010, 22:16
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 14.12.2007
Beiträge: 9
amasingh befindet sich auf einem aufstrebenden Ast
Standard

Code:
$('#myForm').submit();
Hört sich toll an aber funktioniert leider nicht
Fehler werden nach deinem Code ausgegeben jedoch sobald kein Fehler mir da ist passiert nichts ( das Formular wird nicht versendet ).

Achja noch wichtig! Ich möchte kein JS Formular also nicht per HTTPX versendet! Sondenr wie ein normales Formular als haette es der User slbst versendet. Eben genau das was preventDetaul() (oder auch return false) verhindert.
Mit Zitat antworten
  #6 (permalink)  
Alt 11.05.2010, 07:54
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Zitat:
Zitat von fox Beitrag anzeigen
Code:
$('#myForm').bind('submit', function(event) {
        $.post('/target/bla',$(this).serialize(),function(json){
            if(json.success){
                //FORMULAR ENDGÜLTIG ABSENDEN.
                $('#myForm').submit();
            }
            else{
                alert(json.feedback);
            }
        },'json');
        return false;		
    });
Mit submit(,,,) bzw bind.("submit") klemmst Du function als Handler für den
event submit an das Formular. Im Handler rufst du den wieder mit submit() auf.
Ich kann mir vorstellen, das JS bekommt da Probleme.

Ich würde an dessen Stelle mit get() oder post() die Daten auch absenden

Da der Handler immer mit false zurückkommt und nichts gesendet wird, macht
das Teil was Du ihm gesagt hast,
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formular lässt sich nicht absenden ready Javascript & Ajax 4 24.06.2011 11:32
PHP: Formular absenden ohne URL-Leiste zu verändern? sepp88 Serveradministration und serverseitige Scripte 11 26.03.2010 19:54
Email formular beim Absenden nicht Umleiten? sepp88 Serveradministration und serverseitige Scripte 1 24.12.2009 13:55
Wert aus Popup an Formular im Hauptfenster übergeben & Hauptfensterformular absenden fmp Javascript & Ajax 2 15.12.2008 21:46
Formular absenden sven81 CSS 1 05.09.2007 09:51


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:30 Uhr.