weixin_33724046 2016-02-21 17:16 采纳率: 0%
浏览 105

在ajax中传递字符串

I have this coffeescript function for dynamic select boxes, and I need to pass "modelsSelect" content to this other script, but I just can't get it working.

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 %>

------------------------------------------------------------------------------------------------------------------------------------ Edit

Heres part of my form containig those select boxes

<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>
  • 写回答

1条回答 默认 最新

  • weixin_33688840 2016-02-22 18:57
    关注

    Figured it out!

    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(),
            model_div_id: 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'
    

    diys_controller.rb

    def update_make_models
      @models = MakeModel.where("make_id = ?", params[:make_id])
      @modelsid = params[:model_div_id]
      respond_to do |format|
         format.js
      end
    end
    

    update_make_models.coffee

    $("<%= @modelsid %>").empty()
        .append("<%= escape_javascript(render "make_models/make_model") %>")
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题