如何从javascript添加select标签的选项

时间:2014-11-03 12:21:45

标签: javascript jquery ruby-on-rails ruby-on-rails-3

我的表格有一些下拉菜单。我需要根据id值动态更改select标签的选项。

例如,如果id为1  选择标签选项应该是猫,狗 如果id = 2 选择标签选项应该是apple,banana

我将从javascript函数动态获取id。

   <% @options = Test.function1(@id) %>

现在我需要为select_tag附加这个选项。如果我直接在表单中使用这个@option,它会提供不同的输出。 在分析了我是否可以添加从javascript中选择的选项后,我的问题就解决了。 由于一些问题,我无法发布完整的细节 更新:

      <% @options.each_with_index do|x,i|%>
            var opt = document.createElement('option');
            opt.value = '<%=i%>';
            opt.innerHTML = '<%= x%>';
            select.appendChild(opt);
      <% end %>

我在javascript中使用上面的代码来附加@options以选择标记,但它没有附加

我已经使用相同的代码为HTML select标签附加了这个选项,但是当我使用相同的代码轨道时它没有附加。

1 个答案:

答案 0 :(得分:0)

Javascript

$('#dropdown1').change ->
      url = '/some/fetch_values';
      value1 = $(this).val()

      if value1 is ""
        $("#dropdwon2").empty()
        $("#dropdwon2").append $("<option></option>").attr("value", '').text('Choose dropdwon2')
      else
        $.post url, {id: dropdown1_id}, ((res) ->

          $("#dropdwon2").empty();
          $("#dropdwon2").append $("<option></option>").attr("value", '').text('Choose a sub-subcategory')
          if res.length > 0
            $.each res, (key, value) ->
              $("#dropdwon2").append $("<option></option>").attr("value", value[0]).text(value[1])

          else
            $('#dropdwon2').empty();

        ), 'JSON'

<强>控制器

def fetch_values

@dropdown2_values = {}  #find values from params[:id]
respond_to do |format|
      format.js { render :json => @dropdown2_values}
    end
end

试试这段代码..