2016-10-21 10 views
0

preventDefault()return falseを使用しても、私のAjaxフォームは何らかの理由で2回送信されています。そうこれは第二の形態は、送信を停止することが実行から他のすべてのイベントを防止するように、送信イベントにe.stopImmediatePropagation()を添加Ajaxフォームを2回送信

<script type="text/javascript"> 
    $("#form_codes").submit(function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      data: $('#form_codes').serialize(), 
      type: 'POST', 
      url: '{{url('save_code')}}', 
      success: function(msg) { 
         $('#product_codes > tbody:last-child').append('<tr><td>' + $('#code').val() + '</td><td>' + $('#description').val() + '</td></tr>'); 
         $('#code').val(''); 
         $('#description').val(''); 
        }, 
      error: function(msg) { 

        } 
     });   
     return false; 
    }); 
</script> 
+0

あなたのHTMLには、 'id =" form_codes "'という形式のフォームしかありませんか? – vaso123

+0

多分あなたのクリックイベントと関係があります – Beginner

+1

あなたの質問には文脈がありませんが、ちょうどこのスニペットを2度呼び出しているようです。 –

答えて

1

してみてください。

<script type="text/javascript"> 
       $("#form_codes").submit(function(e) { 
        e.preventDefault(); 
        e.stopImmediatePropagation(); 
        $.ajax({ 
         data: $('#form_codes').serialize(), 
         type: 'POST', 
         url: '{{url('save_code')}}', 
         success: function(msg) { 
          $('#product_codes > tbody:last-child').append('<tr><td>' + $('#code').val() + '</td><td>' + $('#description').val() + '</td></tr>'); 
          $('#code').val(''); 
          $('#description').val(''); 
         }, 
         error: function(msg) { 

         } 
        }); 

        return false; 
       }); 
</script> 
0

(効果的に二回、それを含む。)私は二度私のスクリプトを得た私のブレードテンプレートエンジンで判明

機能が正常に動作し、今だけ一度提出します。

関連する問題