2010-04-13 45 views
0

我有下面的代码块:为什么jquery ajax调用中的数据属性重写我的返回false?

$("#contact_container form, #contact_details form").live(
    "submit", 
    function(event) { 
     $.ajax({ 
      type: this.method, 
      url: this.action, 
      data: this.serialize(), 
      success: function(data) { 
       data = $(data).find("#content"); 
       $("#contact_details").html(data); 
      }, 
     }); 
     return false; 
    } 
; 

当我离开了数据:this.serialize(),它的行为正常并显示#contact_details DIV内的响应。然而,当我离开它时,它会提交表单,导致页面离开。为什么data属性的存在会否定返回false? (可能是由于我无法发现的错误...)

另外,我的查找语句的语法是否正确?它回来为“未定义”,即使我使用调试器来检查ajax响应,并且该ID确实存在。

感谢, 史蒂夫

回答

1

我认为this.serialize()失败,因为它指向的表单元素,而不是一个jQuery对象。 这可能会导致脚本错误,因此永远不会达到return语句。

尝试将其更改为:

data: $(this).serialize() 
+0

谢谢!就是这样 – steve 2010-04-13 18:21:12