1

お問い合わせフォームを作成していますが、ajax を介してデータを送信し、同じ方法で結果を表示したいと考えています。しかし、ユーザーが送信ボタンをクリックするたびに、ページは自動的に送信されているようです。jquery のpreventDefaultstopPropogationも使用しました。しかし、まだ機能していません。私はjQueryが初めてで、何か小さなものを見逃しているかもしれません。コードは次のとおりです。

<form action="#" method="post" accept-charset="utf-8" name="contactform" id="contactform">
        <p>Name<br/><input type="text" name="cname" value="" id="cname" required /></p><br/>
        <p>Email<br/><input type="email" name="cemail" value="" id="cemail" required /></p><br/>
        <p>Message<br/><textarea name="cmessage" cols="40" rows="10" id="cmessage" required ></textarea></p>

        //Re-captcha code here
        <p><input type="submit" name="contact_submit" value="Submit" id="contact_submit"  /></p>
        </form> 

        <br />
        <div id="result"></div>

脚本

$(document).ready( function(){
$("#contact_submit").click( function(e){

   e.preventDefault();
   e.stopPropagation();




 });

 $("#result").html('');

 $("#contactform").validate();


 });

jQuery Validation Plugin も含めましたが、これも機能していません。

4

4 に答える 4

5

実際に必要なのは、 をキャプチャするsubmit()ことpreventDefault()です。

$('#contactform').submit(function(e){
    e.preventDefault();
});
于 2013-07-03T19:10:55.763 に答える
3

jQuery は、#ID を識別し.、クラスを識別するために が必要です。

フォームを送信したくない場合は、これを使用します。

$("#contactform").on('submit', function(e){

    alert("not submited");
    return false;

    });
于 2013-07-03T19:11:11.140 に答える
0

あなたが見ることができるいくつかのことがあります。まず、type="submit" から type="button" に変更します。これにより、送信なしですべて同じ機能が得られます。第 2 に、これを IE で動作させようとしている場合、IE にはイベント オブジェクトの preventDefault メソッドがないため、動作しません。returnValue を false に設定するだけです。

$("#contactform").submit( function(e){
   e.stopPropagation();
   if(e.preventDefault){
      e.preventDefault();
   }else{
      e.returnValue = false;
   }
});
于 2013-07-03T19:14:33.560 に答える
0

セルジオは正しいです。

また、クリックリスナーは入力に対しても機能しません。正しいセレクターは

$('input[name="contact_submit"]')
于 2013-07-03T19:17:42.437 に答える