2016-10-21 2 views
0

preventDefault()return false을 사용해도 My Ajax 양식이 두 번 제출됩니다.Ajax 양식을 두 번 제출하십시오

<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"'로 된 양식이 1 개만 있습니까? – vaso123

+0

어쩌면 그것은 당신의 클릭 이벤트와 관련이 있습니다 – Beginner

+1

귀하의 질문에 문맥이 없습니다.하지만이 스 니펫을 두 번 호출하는 것 같아요. –

답변

1

시도 그렇게이 제 양식 제출하지 않을 수 실행에서 다른 모든 사건을 방지로서 제출 이벤트 e.stopImmediatePropagation() 추가.

<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

내가 두 번 내 스크립트를 산출 한 내 블레이드 템플릿 엔진에서 밝혀 (효과적으로 두 번을 포함.)

을 기능은 잘 작동 한 번만 지금 제출합니다.

관련 문제