document.form.submit()在jquery ajax调用中不起作用
我有一个表单,当我提交它时,它将通过jQueryAjax调用检查一些验证 我的代码如下:document.form.submit()在jquery ajax调用中不起作用,jquery,ajax,submit,Jquery,Ajax,Submit,我有一个表单,当我提交它时,它将通过jQueryAjax调用检查一些验证 我的代码如下: $("#myForm").submit(function(){ ..... ..... ..... ..... ..... $.ajax({ type:"POST", url:"<?php echo base_url();?>bTransJual/formTambahJual/ajaxCekStockJual/",
$("#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;
}
}
});
});
$(“#myForm”).submit(函数(){
.....
.....
.....
.....
.....
$.ajax({
类型:“POST”,
url:“btranshual/formTambahJual/ajaxCekStockJual/”,
数据:{prdIdUkuId:dataArrPrIdUkuId,数量:dataArrQty},
数据类型:“json”,
成功:功能(数据){
if(data.sukses){
//瓦利达斯洛罗斯
document.frmTransJual.submit();
}否则{
//瓦利达斯·加加尔
psnErrNya=data.psnErr;
$(“#psnnoifikasiajax”).html(psnErrNya);
$(“#notifikasiAjax”).show('normal');
$(“#imgLoadSubmit”).hide();
返回false;
}
}
});
});
和我的表单标签:
<form name="frmTransJual" id="myForm" method="post" action="some_url.php">
如果ajax成功,它将返回一个值data,如果data.sukses为true,我希望表单提交它。我使用document.frmTransJual.submit();提交它,但它不起作用。有人能解决这个问题吗 AJAX中的“A”表示“异步”。您的
submit
处理函数在AJAX调用完成之前很久就返回了,从AJAX回调的else
分支返回false
不会影响submit
回调的返回值。这是因为提交不会等待AJAX请求完成。。它是异步的
当回调函数发出调用时,请求早已消失。原因是您使用的是无限循环。它将再次调用相同的函数 你可以这样用 创建一个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;
}
}
});
`提交表单`
$(“#提交”)。单击(函数(){
$.ajax({
类型:“POST”,
url:“btranshual/formTambahJual/ajaxCekStockJual/”,
数据:{prdIdUkuId:dataArrPrIdUkuId,数量:dataArrQty},
数据类型:“json”,
成功:功能(数据){
if(data.sukses){
$(“myform”).submit();
}否则{
//瓦利达斯·加加尔
psnErrNya=data.psnErr;
$(“#psnnoifikasiajax”).html(psnErrNya);
$(“#notifikasiAjax”).show('normal');
$(“#imgLoadSubmit”).hide();
返回false;
}
}
});
})
文档。frmTransJual
的格式与$(“#myForm”)
相同。因此,调用document.frmTransJual.submit()
将在无限循环中再次调用submit
函数。注意:您的返回false代码>什么都不做,因为您无法从AJAX回调返回。这是您页面上唯一的表单吗?@RocketHazmat谢谢您的信息。:)是的,这是mypageSide中唯一的表单注意:该死的,你需要为ID和变量创建更容易阅读的表单,如果我必须在别人之后阅读代码,我会杀了别人。hahaso我有没有办法在ajax调用成功时提交此表单?或者根本没有办法做到这一点,因为这是不可能的?为什么要在提交表单之前调用AJAX?通常,您会正常发布表单,或者使用AJAX发布表单,为什么要同时发布这两种表单?如果要重定向,只需使用window.location
。实际上表单中有很多值。我想如果表单的输入在表单发布之前先得到验证,我会做得更好。如果我通过php验证,那么我必须用用户输入再次填充输入,这是非常多的。。。谢谢您的信息,顺便说一句,非常感谢……)那是不是意味着这是不可能的?当ajax调用完成时提交此表单?ho。。好吧。。我现在明白了。。所以那是不可能的您可以通过创建一个简单的div并向该div添加一个ajax调用来实现这一点。如果返回true,请提交此表单,以便您的服务器获得该值“向该div添加ajax调用”是什么意思?您能给我一个演示代码吗?谢谢你,我现在明白了,到时候就应该做了。非常感谢@jhonraymos