我已經開始使用jQuery和rails。我做了一個簡單的表單,提交給數據庫並更新頁面,而不用用ajax重新加載。混淆rails div id命名
在我的jQuery函數中,我使用$「#new_comment」作爲id名稱(在我的application.js和create.js.erb文件中),但在我的places/show視圖文件中,我將div命名爲「add_comment」它的工作原理..
我把它重新命名爲new_comment,它打破了!有人可以解釋嗎?我得到一個錯誤:「沒有任何行動迴應1」
我的控制器中的功能是「創建」。
#views/places/show.html.erb
<div id="new_comment" style="display:none">
#form goes here
</div>
#application.js
jQuery.fn.submitWithAjax = function(){
$("#new_comment").submit(function() {
$.post($(this).attr("action"), $(this).serialize(), null, "script");
return false;
})
};
$(document).ready(function() {
$("new_comment").submitWithAjax();
})
#create.js.erb
$("#new_comment").before('<div id="flash_notice"><%= escape_javascript(flash.delete(:notice)) %></div>');
$("#comments_count").html("<%= pluralize(@comment.place.comments.count, 'suggestion') %>");
$("#comments").append("<%= escape_javascript(render(:partial => @comment)) %>");
$("#new_comment")[0].reset();
#comments_controller.rb
def create
@place = Place.find(params[:place_id])
@comment = @place.comments.create!(params[:comment])
flash[:notice] = "Thanks for your suggestion. Remember to share with friends!"
respond_to do |format|
format.html {redirect_to place_comments_path(@place)}
format.js
end
end
請發送一些編碼給 – 2010-03-14 14:18:53
添加代碼 – 2010-03-14 14:44:02
您將'submit'事件附加到容器div,而不是其中的表單。 – 2010-03-14 14:45:14