我正在尝试让 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,而不是表单输入元素本身。我有一个单独的问题,但我想一旦我弄清楚可能导致它的原因,我就会发布该问题......
最佳答案
呃,我明白了......一个粗心的错误。我在 HTML 列表项中有输入元素,并且将 .live() 函数调用附加到 li id 而不是输入元素 id。感谢楼上各位的帮助。
关于jquery - 当我尝试使用 ajax 调用自动保存表单字段时,在 jQuery 中出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4911170/