document.form.submit()在jquery ajax调用中不起作用

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/",

我有一个表单,当我提交它时,它将通过jQueryAjax调用检查一些验证

我的代码如下:

$("#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