/ / OperaはpreventDefault()でsubmit()のフィールド検証に失敗します-jquery、validation、post、opera、preventdefault

Operaは、preventDefault() - jquery、validation、post、opera、preventdefaultを使用してsubmit()でフィールドの検証に失敗しました

HTML5フォーム検証とajaxフォーム送信を使用したかった。 prepend()、show()などを使用して、送信フォームを他のコンテンツに置き換える必要があります。

私はsubmit()とvalidate()関数をチェックして、これを思いつきました:

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

見える e.preventDefault(); Operaでフォームの検証を無効にし、Firefox / Chromeで完全に機能します。

何か案は?これはjQuery / Operaのバグですか、それともOperaがそれを正しく行っており、残りはそうではありませんか?

例: http://jsfiddle.net/gw3My/

回答:

回答№1は1

これはOperaの奇妙な動作のようです。どのブラウザが正しいのかわかりませんが、 このページ 癖を説明し、を使用して回避策を提案します this.checkValidity()。ニーズに合わせて調整してください。

による このページ、この癖はOpera 12で修正されます。

CORE-35849 HTML5フォームでクライアント側の検証の前に誤ってイベントを送信する