2011-10-21 53 views
3

这是我的头,我第一次点击时,它提交与警报data.msg罚款。但第二次,只有ajax什么也没有,警报“结束在这里“仍然着火,所以我认为事件点击没有问题。我的ajax有什么问题?由于序列化的东西?JQuery AJAX不会在第二次后触发

   $('#inv-btn-submit').live('click',function(e) { 

        $.ajax({ 
         type : 'POST', 
         url : '<?= base_url();?>main/insertInvoice', 
         dataType : 'json', 
         data: {product_list:$('.namabarang').serializeArray(), 
          qty_list : $('.qty').serializeArray(), 
          cost_list : $('.cost').serializeArray(), 
          customer_meta:$('#customer input, textarea').serializeArray() 
         }, 

         success : function(data){ 
          alert(data.msg); 


         }, 
         error : function(XMLHttpRequest, textStatus, errorThrown) { 
          alert('There was an error. '); 
         } 
        });//end of ajax 
        alert("end here"); 
        return false; 

       });// end of button click 
+0

您能否使用Chrome的开发者工具等浏览器工具查看xhr请求是否被发送? – Quincy

+0

我不能立即看到这里有什么问题(对我来说可能为时过早!),但是如果您打开开发人员工具/萤火虫/类似的东西,您是否看到正在向服务器发送什么请求? –

+0

你可以看看它是否试图发送帖子(在萤火虫/即开发/铬开发等),或剂量它得到那么远? –

回答

0

serializeArray工作在一个表格选择e.g:$('form').serializeArray();将返回数组数据发布请求的URI/URL不知道它会在各个输入工作。 注意,我已经把die()放在了现场,因为这会杀死任何以前的事件。可能还需要 ,也可能需要添加e.preventDefault();,以阻止表单在提交时刷新页面。

$('#inv-btn-submit').die().live('click',function(e) { 
    var get_data = $('form').serializeArray(); 
    $.ajax({ 
    type : 'POST', 
    url : '<?= base_url();?>main/insertInvoice', 
    dataType : 'json', 
    data: get_data, 
    success : function(data){ 
     alert(data.msg); 
    }, 
    error : function(XMLHttpRequest, textStatus, errorThrown) { 
     alert('There was an error. '); 
    } 
});//end of ajax 
alert("end here"); 
return false; 
});// end of button click 
2

你可以尝试关闭不同步只是由 设置他的电话。 异步:假

$('#inv-btn-submit').live('click',function(e) { 

       $.ajax({ 
        type : 'POST', 
        url : '<?= base_url();?>main/insertInvoice', 
        dataType : 'json', 
        data: {product_list:$('.namabarang').serializeArray(), 
         qty_list : $('.qty').serializeArray(), 
         cost_list : $('.cost').serializeArray(), 
         customer_meta:$('#customer input, textarea').serializeArray() 
        }, 

        async: false, 

        success : function(data){ 
         alert(data.msg); 


        }, 
        error : function(XMLHttpRequest, textStatus, errorThrown) { 
         alert('There was an error. '); 
        } 
       });//end of ajax 
       alert("end here"); 
       return false; 

      });// 
0

我想你也可以这样做:

... 
data: {product_list: return $('.namabarang').serializeArray(), 
... 

关于前直播()方法调用我想没有必要的模具()方法。 我的2美分!

0

控制台告诉很多,它仍然发送的数据,我意识到第二次提交我必须更新该发票,但我的PHP脚本走向了错误的方向,并没有json数据被回显,它的怪异如果没有回调数据,错误功能不会触发。感谢球员提示。

相关问题