2014-11-03 156 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 

試試這個代碼..

相關問題