2017-10-19 74 views
0

我一直在嘗試一些與Ajax和laravel的東西,我已經嘗試了很多在這一點上,不知道什麼是錯的。我似乎無法獲得表單數據(這主要是關於什麼)。如果有人能夠幫助,那會很好。這裏的代碼,並提前感謝。JQuery的Ajax/laravel表單提交不工作

$('.bier').on('click', bier); 
$('.delete-check-close').on('click', closeDelete); 
$('.delete-check-show').on('click', showDelete); 
$('.message').on('click', closeMessage); 
hideMessage(); 

$('form.page').on('submit', bier); 

function bier() { 
    var form = $(this); 
    var url = form.attr('action'); 
    console.log(url); 
    console.log(form); 

    console.log('bier'); 
    console.log(form.find('input').serialize()); 
    console.log('/bier'); 
    var wtf = new FormData(form); 

    $.ajax({ 
     url: url, 
     type: 'POST', 
     dataType: 'json', 
     contentType: 'json', 
     data: form.serialize(), 
     headers: { 
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
     }, 
     success: function(data, textStatus, jqXHR) { 
      console.log('success'); 
      console.log(data); 

     }, 
     error: function (jqXHR, textStatus, errorThrown) { 

      var data = $.parseJSON(jqXHR.responseText); 

      console.log(data); 

      if (data.errors) { 
       console.log(data.errors); 

       $.each(data.errors, function(key, value) { 
        console.log(key); 
        console.log(value); 

        if(key.length > 0) { 
         var $error = $('td.' + key); 
         $error.removeClass('hidden'); 
         $error.addClass('visible'); 
         $error.html(value); 
        } 
       }); 
      } else { 
       console.log('======================================== error'); 

       console.dir(jqXHR); 
       console.dir(textStatus); 
       console.dir(errorThrown); 
      } 
     } 
    }); 

    return false; 
} 
}); 
+0

這是我的形式,我也想通了,實際上存在一個錯誤,它只是沒有顯示。以下是錯誤: POST 422(Unprocessable Entity) {message:「給定的數據無效。」 ,錯誤:{...}} 在errros中:它只是顯示我的表單中的每個字段 –

+0

向我們顯示服務器端代碼,驗證邏輯可能有問題。你使用自定義驗證器嗎?此外,它似乎是你發送的數據爲JSON,但仍然使用form.serialize()。您可以嘗試使用JSON.stringify()對其進行序列化 –

回答

0

試試下面的代碼:

$('form.page').on('submit', function() { 
    var form = $(this); 
    var url = form.attr('action'); 
    console.log(url); 
    console.log(form); 
    console.log('bier'); 
    console.log(form.find('input').serialize()); 
    console.log('/bier'); 
    var wtf = new FormData(form); 
    $.ajax({ 
     url: url, 
     type: 'POST', 
     dataType: 'json', 
     contentType: 'json', 
     data: form.serialize(), 
     headers: { 
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
     }, 
     success: function(data, textStatus, jqXHR) { 
      console.log('success'); 
      console.log(data); 

     }, 
     error: function (jqXHR, textStatus, errorThrown) { 

      var data = $.parseJSON(jqXHR.responseText); 

      console.log(data); 

      if (data.errors) { 
       console.log(data.errors); 

       $.each(data.errors, function(key, value) { 
        console.log(key); 
        console.log(value); 

        if(key.length > 0) { 
         var $error = $('td.' + key); 
         $error.removeClass('hidden'); 
         $error.addClass('visible'); 
         $error.html(value); 
        } 
       }); 
      } else { 
       console.log('======================================== error'); 
       console.dir(jqXHR); 
       console.dir(textStatus); 
       console.dir(errorThrown); 
      } 
     } 
    }); 
    return false; 
});