在我的show.html.haml視圖中,我有一個表單,用戶可以更改一些設置。我剛剛更新使用Rails UJS,當用戶更改下拉菜單時,他們會看到jquery shizzle這樣做。Rails UJS - 無法讓jquery在第一個動作後觸發
我在show.js文件中所做的所有事情都是刷新表單的部分內容,並閃爍顯示錯誤消息。
問題是,一旦它被更新一次,jquery下拉選擇不起作用。我想這是因爲它渲染了update.js視圖 - 因此我包含了這個文件。但是,仍然沒有任何反應,我在日誌中沒有出現錯誤。
在show.html.haml我已經(簡化):
#show_form
= render "show"
我的節目部分包含:
= semantic_form_for @product_order, :remote => true do |f|
= f.select :shipping_method, options_for_select(ProductOrder::Couriers, :selected => @product_order.shipping_method)
我show.js.erb和update.js.erb包含:
$("#show_form").html("<%= escape_javascript(render("show")) %>");
$("#status_banner").effect("highlight", {}, 3000);
$("#status_banner").html("<h2>ORDER STATUS: <%= (@product_order.state.titlecase) %></h2>");
$("#status_banner").removeClass("alert").addClass("alert <%= (@product_class) %>");
在我product_order.js.coffee我有這樣的:
jQuery ->
$("#dropdown_select").change ->
$(this).closest("form").submit()
$(this).serialize()
null
"script"
false
就像我說的,第一個動作起作用,但在第一次更新後失敗。我的控制器更新操作有點笨重,但我確定我已經包含了format.js。我也試過把respond_to:js放在控制器的頂部。
我在做這個錯誤還是有一個簡單的修復,我無法看到?
我明白你的意思,並嘗試,但它仍然不點火。已經檢查並重複檢查,並在日誌中沒有任何內容。 S – simonmorley
我還注意到我的下拉菜單在第一次更新後無法正確顯示。我使用選擇使它更漂亮 - 刷新後,我得到一個標準的菜單。 – simonmorley
那麼,選擇的樣式不應該改變,除非你使用的庫使用javascript來改變它,然而這是它們的一個庫問題。另外,嘗試註釋'$(this).serialize()'和它下面的所有內容,然後再次嘗試運行它。 – Magicmarkker