2012-03-31 16 views
1

私はHTML5フォームの検証とajaxフォームの送信を使いたいと思っていました。送信フォームをprepend()、show()などを使って他のコンテンツに置き換える必要があります。preventDefault()でsubmit()のフィールド検証に失敗しました

私が提出()と()の機能を検証し確認すると、この思い付いた:

$("#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();のように、それは、Firefox/Chromeで完全に正常に動作に見えます。

アイデア?このjQuery/Operaのバグですか、それとももう一度Operaが正しくやっているのですか?残りはありませんか?

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

答えて

1

これは、オペラで癖のようです。どちらのブラウザが正しいか分かりませんが、this pageがその奇妙な点を説明し、this.checkValidity()を使用して回避策を提案しています。それをあなたのニーズに合わせてください。

this pageによると、この癖はオペラ12に固定されます

CORE-35849イベントを提出するHTML5におけるクライアント側の検証が

+0

どうもありがとう、I'LLを形成する前に誤って発射とにかくjQuery Tools Validatorに固執するが、IEを含むすべての主要なブラウザでhtml5検証サポートを待つことはできない。 – Wordpressor

関連する問題