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

时间:2012-09-25 15:58:20

标签: jquery ajax submit

我有一个表单,当我提交它时将通过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();提交它,但它不起作用。有人有解决方案吗?

4 个答案:

答案 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​​请求完成..它是异步的..

当呼叫从回调函数发出时,请求很快就消失了。