0
我有這個動態選擇框的coffeescript函數,我需要將「modelsSelect」內容傳遞給這個其他腳本,但我無法讓它工作。在ajax中傳遞字符串
diys.coffee
dynamicSelect = (makesSelect, modelsSelect) ->
$(document).on 'change', makesSelect, (evt) ->
$.ajax 'update_make_models',
type: 'GET'
dataType: 'script'
data: {
make_id: $("#{makesSelect} option:selected").val(),
'models': modelsSelect
}
error: (jqXHR, textStatus, errorThrown) ->
console.log("AJAX Error: #{textStatus}")
success: (data, textStatus, jqXHR) ->
console.log("Dynamic make select OK!")
dynamicSelect '#diy_attached_vehicles_attributes_0_make', '#diy_attached_vehicles_attributes_0_model'
dynamicSelect '#diy_attached_vehicles_attributes_1_make', '#diy_attached_vehicles_attributes_1_model'
update_make_models.coffee
$(models).empty()
.append("<%= escape_javascript(render "make_models/make_model") %>")
make_models/_make_models.html.erb
<% @models.collect do |models| %>
<option value="<%= models.id %>"><%= models.make_model_name %></option>
<% end %>
------------------------------------------------ -------------------------------------------------- ---------------------------------- 編輯
我的形式繼承人部分containig那些選擇框
<div class="vehicle_field">
<%= f.fields_for :attached_vehicles do |av| %>
<p>Select make</p>
<%= av.select :make, options_for_select(@makes.collect { |make|[make.make_name, make.id] }, 0), {} %><br>
<p>Select model</p>
<%= av.select :model, (render "make_models/make_model"), {} %><br>
...
<% end %>
</div>
究竟你「的意思,但我只是無法得到它的工作?「究竟發生了什麼或什麼不發生? – IceFire
當我選擇make make選擇框時,它應該發送選定make的make_id(因爲它是),併發送「modelsSelect」內容(模型選擇框的id)到「update_make_models.coffee」,以便清空並追加它。但是現在當我選擇make時,模型選擇框沒有任何反應,並且在瀏覽器控制檯中我得到「AJAX Error:parsererror」。 –