2014-04-19 45 views
0

我想通過我的Laravel 4應用程序中的Ajax提交表單。Laravel 4 Ajax調用不能正常工作獲取重定向到像正常操作

問題:我只是重定向到路由。所以沒有發送Ajax呼叫。表單就像一個正常的表單一樣工作。

的形式爲:

{{ Form::open(array('route' => 'ajax.profile.edit', 'method' => 'post', 'id' => 'edit-profile')) }} 

JS代碼在我看來:

$(document).ready(function($){ 
    $('#edit-profile').on('submit', function() { 
     //Form is located in a Modal, so first hide it 
     $("#form-primary").niftyModal('hide'); 
     //Show a modal with a "loading" note 
     $('#processing-modal').modal('show'); 

     $.post(
      $(this).prop('action'), 
      { 
       "_token": $(this).find('input[name=_token]').val(), 
       "displayname": $('#displayname').val(), 
       "bio": $('#bio').val(), 
       "expertise": $('#expertise').val(), 
       "location": $('#location').val(), 
      }, 
      function(data) { 
       //now hide the "loading" note and alter the success message. 
       $('#processing-modal').modal('hide'); 
       alert(data.msg); 
      }, 
      'json' 
     ); 
     return false; 
    }); 

}); 

回答

1

這應該工作,我用完全相同的方式(通過AJAX提交Laravel表單)。

$('#edit-profile').submit(function (event) { 
     var form = $(this); 
     $.ajax({ 
      type: form.attr('method'), 
      url: form.attr('action'), 
      data: form.serialize() 
     }).done(function (data) { 

      // on success 

     }).fail(function (data) { 

      // on error 

     }); 
     event.preventDefault(); 
}); 
0

您需要包括event.preventDefault();防止形式以傳統的方式提交。 event傳遞提交的回調函數。

$(document).ready(function($){ 
    $('#edit-profile').on('submit', function(event) { 

     event.preventDefault(); 

     /* The rest of your code */ 


     return false; 
    }); 

}); 
+0

沒有這個劑量不工作。但我嘗試了不同的觀點和工作正常。所以我認爲我在View中使用了一些JavaScript代碼來打破Ajax調用... – mfsymb