我有一个表单,当我提交它时将通过jQuery AJAX调用检查一些验证。
我的代码是这样的:
$("#myForm").submit(function(){
.....
.....
.....
.....
.....
$.ajax({
type:"POST",
url:"<?php echo base_url();?>bTransJual/formTambahJual/ajaxCekStockJual/",
data: { prdIdUkuId: dataArrPrIdUkuId, qty: dataArrQty},
dataType : "json",
success: function(data){
if(data.sukses){
//validasi lolos
document.frmTransJual.submit();
}else{
//validasi gagal
psnErrNya = data.psnErr;
$("#psnNotifikasiAjax").html(psnErrNya);
$("#notifikasiAjax").show('normal');
$("#imgLoadSubmit").hide();
return false;
}
}
});
});
我的表格标签:
<form name="frmTransJual" id="myForm" method="post" action="some_url.php">
如果ajax成功,它将返回一个值数据,如果此data.sukses为true,我希望表单提交它。我使用document.frmTransJual.submit();提交它,但它不起作用。有人有解决方案吗?
答案 0 :(得分:1)
原因是你正在使用无限循环。它将再次调用相同的函数。
你可以像这样使用
创建一个div
`<div id="submit">Submit form</div>`
$("#submit").click(function(){
$.ajax({
type:"POST",
url:"<?php echo base_url();?>bTransJual/formTambahJual/ajaxCekStockJual/",
data: { prdIdUkuId: dataArrPrIdUkuId, qty: dataArrQty},
dataType : "json",
success: function(data){
if(data.sukses){
$("myform").submit();
}else{
//validasi gagal
psnErrNya = data.psnErr;
$("#psnNotifikasiAjax").html(psnErrNya);
$("#notifikasiAjax").show('normal');
$("#imgLoadSubmit").hide();
return false;
}
}
});
})
答案 1 :(得分:1)
document.frmTransJual
与$("#myForm")
的格式相同。因此,调用document.frmTransJual.submit();
只会在无限循环中再次调用submit
函数。
答案 2 :(得分:0)
“AJAX”中的“A”用于“异步”。您的submit
处理程序函数在AJAX调用完成之前返回很久,从AJAX回调的false
分支返回else
不会影响submit
回调的返回值。
答案 3 :(得分:0)
这是因为提交不会等待AJAX请求完成..它是异步的..
当呼叫从回调函数发出时,请求很快就消失了。