当我尝试使用ajax调用自动保存表单字段时,在jQuery中获取错误

时间:2011-02-06 02:39:53

标签: jquery ruby-on-rails ajax ruby-on-rails-3 forms

我正在尝试在rails 3项目中获取一个表单字段,以便在更改时自动保存。我正在尝试使用以下jQuery ajax调用来执行此操作:

$j("#list_" + <%= item.list_id.to_s %> + "_item_" + <%=item.id.to_s %>).live("change", 
 function(){
      $j.ajax({ 
           beforeSend: function(request) {
               request.setRequestHeader("Accept", "text/javascript"); 
           },
           type: 'POST',
           url: '<%= list_text_item_path(List.find(item.list_id), TextItem.find(item.id)) %>/update',
           data: {
                value: $j(this).val(),
                id: '<%= item.id.to_s %>',
                list_id: '<%= item.list_id.to_s %>'
           },
           success: function(){
                alert("success");
           } 
      });
 });

每当更改文本框时,我在jQuery中都会收到以下错误:

 (c.value || "").replace is not a function

这是在jQuery-1.5.min.js中。我也遇到了与jQuery-1.4.2.min.js相同的错误。 (我更新到1.5,看看这对任何事都有帮助。)

关于我哪里出错的任何想法? 非常感谢。

编辑:哦,废话,当我的HTML发布时,我意识到我已经将.live()调用附加到表单输入元素的容器div而不是表单输入元素本身。我有一个单独的问题,但我想我会发布一旦我找出可能导致它的原因......

1 个答案:

答案 0 :(得分:1)

呃,我明白了......一个粗心的错误。我在HTML列表项中有输入元素,并且我将.live()函数调用附加到li id而不是输入元素id。感谢上面的帮助。