2014-11-03 90 views
0

我有一个下拉式窗体。我需要根据id值为选择标签动态更改选项。如何添加从java脚本中选择标签的选项

例如,如果id为1个 选择标签选项应该是猫,狗 在ID = 2个 选择标签选项应该是苹果,香蕉

我会得到的ID动态地从javascript函数。

<% @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选择标记,工作得很好但是当我使用相同的代码轨道,它不是追加。

+0

请解释总体目标/问题,因为这看起来像一个XY问题。 – 2014-11-03 12:23:52

+0

在JavaScript中,我已经调用了模型函数来获取选项,现在我需要添加这些选项来选择标记。从上面的代码我在@options变量中获得选项现在我怎么可以追加选择在轨道中的标记选项 – user2083041 2014-11-03 12:28:32

+0

我认为它更好地使用[collection_select](http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select )用于从数据库获取动态数据。 – 2014-11-03 12:40:29

回答

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 

试试这个代码..

相关问题