0

我有一个表单,当我提交它时,它将通过 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 为真,我希望表单提交它。我使用 document.frmTransJual.submit(); 提交它,但它不起作用。有人对此有解决方案吗?

4

4 回答 4

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;
       }
    }
 });

})

于 2012-09-25T16:04:33.343 回答
1

document.frmTransJual与 的形式相同$("#myForm")。因此,调用document.frmTransJual.submit();只会submit在无限循环中再次调用该函数。

于 2012-09-25T16:05:15.607 回答
0

“AJAX”中的“A”代表“异步”。您的submit处理函数在您的 AJAX 调用完成之前很久就返回了,falseelse您的 AJAX 回调的分支返回不会影响您的submit回调的返回值。

于 2012-09-25T16:03:17.903 回答
0

这是因为提交不会等待AJAX​​请求完成..它是异步的..

当调用来自回调函数时,请求早已不复存在。

于 2012-09-25T16:03:57.110 回答