変更されたときに自動保存するために、フォームフィールドをレール3プロジェクトに取得しようとしています。私は、次のjQueryのAJAX呼び出しでこれを行うにしようとしています:ajax呼び出しでフォームフィールドを自動保存しようとするとjQueryでエラーが発生する
$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を投稿するときに、フォーム入力要素のコンテナdivに.live()呼び出しがあり、フォーム入力要素自体には接続されていないことがわかりました。私は別の問題を抱えていますが、私はそれが原因で何が起こっているのか把握したら投稿します。
htmlのスニペットとレンダリング済みのjsコードを表示できますか? – Luke
Firebugから、このエラーのバックトレースがありますか?エラーの 'c'は' ajax() 'に' data: 'として渡し、' $ j(this).val() 'はあなたに文字列を与えていないハッシュです(! ?)ので、 '.replace()'はそのメソッドの一つではありません。しかし、どのような関数呼び出しがそのエラーを引き起こしているかを見ることなく、言うことは難しいです。 –