2016-11-29 55 views
0

我有此Ajax請求來顯示驗證錯誤和防止頁面重新加載Laravel - 阿賈克斯創建雙輸入

$(document).on('mousedown', ':submit', function() { 
    //alert('clicked submit'); 
    var form = $("form"); 
    $.ajax({ 
     type: 'post', 
     url: '/events', 
     headers: { 'X-CSRF-TOKEN': "{{csrf_token()}}" }, 
     data: form.serialize(), 
     dataType: 'json', 
     success: function(data){ 

     }, 
     error: function(data) { 
      for(errors in data.responseJSON){ 
       swal({text:data.responseJSON[errors]}); 
      } 
     } 

    }); 
}); 

一切都很好,此代碼!問題是,成功提交後,我在數據庫中有2個輸入...我如何防止這種情況?

回答

1

你確定表單實際上沒有提交和保存的值一次郵寄和一次由ajax?通常,如果您要捕捉提交事件,則可以聽取提交表單的提交按鈕的事件,例如,

$('form').on('submit', function(e) { 

    // Stop the forms default submit action 
    e.preventDefault(); 

    //alert('clicked submit'); 
    var form = $("form"); 
    $.ajax({ 
     type: 'post', 
     url: '/events', 
     headers: { 'X-CSRF-TOKEN': "{{csrf_token()}}" }, 
     data: form.serialize(), 
     dataType: 'json', 
     success: function(data){ 

     }, 
     error: function(data) { 
      for(errors in data.responseJSON){ 
       swal({text:data.responseJSON[errors]}); 
      } 
     } 

    }); 
}); 

另外,e.preventDefault()將防止形式從你的Ajax行動一起提交本身。此外,你最好選擇一個ID或類名稱的形式。

+0

我做了這個ajax只是爲了防止頁面重新加載錯誤......但如果一切都很好,那麼它應該提交併保存輸入.....我已經嘗試過你的代碼,現在它創建輸入,但頁面保持原樣....將location.reload();解決我的問題....我現在會嘗試 – lewis4u

+0

沒有location.reload();裏面成功{}仍然停留在同一頁面 – lewis4u

+0

但實際上,它刷新Ajax響應的幕後....哦,人如何在瀏覽器中刷新此刷新? – lewis4u