/ / Opera nie sprawdza poprawności pól w submission () z preventDefault () - jquery, sprawdzanie poprawności, post, opera, preventdefault

Opera nie sprawdza poprawności pól na submit () z preventDefault () - jquery, validation, post, opera, preventdefault

Chciałem użyć sprawdzania poprawności formularza HTML5 wraz z wysyłaniem formularzy ajax. Po przesłaniu formularza należy go zastąpić inną treścią za pomocą prepend (), show () lub czegoś podobnego.

Sprawdzałem funkcje Submit () i validate () i wymyśliłem:

$("#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
});

Wygląda jak e.preventDefault(); wyłącza sprawdzanie poprawności formularza w Operze, działa doskonale w Firefox / Chrome.

Jakieś pomysły? Czy to błąd jQuery / Opera, a może po raz kolejny Opera robi to dobrze, a reszta nie?

Przykład: http://jsfiddle.net/gw3My/

Odpowiedzi:

1 dla odpowiedzi № 1

To wydaje się dziwactwem w Operze. Nie jestem pewien, która przeglądarka jest poprawna, ale ta strona wyjaśnia dziwactwo i sugeruje obejście za pomocą this.checkValidity(). Dostosuj go do swoich potrzeb.

Według ta strona, to dziwactwo zostanie naprawione w Operze 12.

CORE-35849 Prześlij zdarzenie niepoprawnie uruchomione PRZED sprawdzeniem poprawności po stronie klienta w formularzach HTML5