2012-03-31 6 views
1

Ich wollte HTML5 Formularüberprüfung zusammen mit Ajax Formularsenden verwenden. Nach dem submit Formular sollte durch prepend(), show() oder etwas ähnlichem ersetzt werden.Opera schlägt Feldvalidierung auf submit() mit preventDefault() fehl

Ich war die Überprüfung einreichen() und bestätigen() Funktionen und kam mit dieser:

$("#form").submit(function(e){ 
    e.preventDefault(); 

    $.post('sendmail.php', { name: $("#form-field-name").val(), email: $("#form-field-email").val(), message: $("#form-field-message").val()}); 

    // now prepend the new "sucessfully sent" div 
}); 

Sieht aus wie e.preventDefault(); Formularvalidierung in Opera deaktiviert, es in Firefox/Chrome perfekt funktioniert gut.

Irgendwelche Ideen? Ist das jQuery/Opera Bug, oder Opera macht es wieder richtig und der Rest ist nicht?

Beispiel: http://jsfiddle.net/gw3My/

Antwort

1

Dies scheint eine Marotte in Opera zu sein. Nicht sicher, welcher Browser korrekt ist, aber this page erklärt die Eigenart und schlägt eine Problemumgehung mit this.checkValidity() vor. Passen Sie es Ihren Bedürfnissen an.

Nach this page wird diese Marotte in Opera festgesetzt 12.

CORE-35849 Senden Ereignis falsch VOR clientseitige Validierung in HTML5 gefeuert bildet

+0

Vielen Dank, ich werde Bleiben Sie trotzdem bei jQuery Tools Validator, können aber nicht auf die HTML5-Validierung in allen gängigen Browsern einschließlich IEs warten. – Wordpressor