我的表格有一些下拉菜单。我需要根据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标签附加了这个选项,但是当我使用相同的代码轨道时它没有附加。
答案 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
试试这段代码..