我只是学习jQuery并致力于ajax提交,但我的表单没有提交,只是重定向到我的主页。
你在我的AJAX中看到错误吗?
带有网址和ID的表单结构 - 在Laravel中使用刀片模板:
{{ Form::open(
array(
'url' => '',
'class' =>'form-horizontal',
'id' => 'invoiceForm',
'method' => 'post'
)
) }}
ajax调用(注意:我正在使用jQuery validate插件)
$(document).ready(function(){
$('#invoiceForm').validate({
rules:{
title: {
required: true,
maxlength: 255,
}
},
messages:{
title: {
required: 'Please enter a title.'
}
},
submitHandler: function(form) {
var title = $('#title').val();
var customerId = $('#customer').val();
var contractorId = $('#contractorId').val();
var taxRate = $('#taxRate').val();
var servicename = $('#taxRate').val();
var taxable = $('#taxable').val();
var qty = $('#qty').val();
var price = $('#price').val();
var subtotal = $('#subtotal').val();
var total = $('#gtotal').val();
var comments = $('#comments').val();
$.post(baseURL+'/contractors/invoice',
{
title: title,
customerId: customerId,
contractorId: contractorId,
taxRate: taxRate,
serviceName: serviceName,
taxable: taxable,
qty: qty,
price: price,
subtotal: subtotal,
total: total,
comments: comments
},
function(response){
if(response.status == 200) {
location.href=baseURL+'/contractors/dashboard';
}
else if(response.status == 400) {
$('#msgSection').empty().removeClass('alert-error alert-success').addClass('alert-error');
}
}, 'json');
return false;
}
});
验证有效,但我不认为表单正在捕获.post操作。 Firebug不会显示任何错误,只是重定向到索引页面。
这是我的邮政路线(提交表格所在的同一页面):
Route::post('/contractors/invoice', 'ContractorController@postInvoice');
另外,可能需要注意的是,表单在php提交操作中运行正常。
TIA
答案 0 :(得分:1)
由于重定向正常,我们可能会认为Ajax调用成功(除非在其他地方有重定向?)。
查看Firebug中的“网络”选项卡,您应该能够看到在Ajax请求期间发送的数据。
我可能还建议从Ajax调用中查找响应主体,它可能会为您提供有关窗帘后面的内容的更多信息。
我希望这会有所帮助