我正在尝试通过我的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;
} );
} );
答案 0 :(得分: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();
});
答案 1 :(得分:0)
您需要添加event.preventDefault();
以阻止以传统方式提交表单。 event
传递了提交的回调函数。
$(document).ready(function($){
$( '#edit-profile' ).on( 'submit', function(event) {
event.preventDefault();
/* The rest of your code */
return false;
} );
});