如何将字符串数组转换为Rails/JavaScript文件中的选择下拉菜单?
我有一个菜单,在其中我选择一个时间段,并调用一个JavaScript函数如何将字符串数组转换为Rails/JavaScript文件中的选择下拉菜单?,javascript,jquery,ruby-on-rails,ruby,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ruby,Ruby On Rails 4,我有一个菜单,在其中我选择一个时间段,并调用一个JavaScript函数 $('#timeSlotSelect').on('change', function(event) { alert($(this).val()); var time_slot = $(this).val(); var i = time_slot.indexOf(' '); var dayFiltered = time_slot.substring(0, i); $.ajax({url: "/acti
$('#timeSlotSelect').on('change', function(event) {
alert($(this).val());
var time_slot = $(this).val();
var i = time_slot.indexOf(' ');
var dayFiltered = time_slot.substring(0, i);
$.ajax({url: "/activities/get_valid_date_range",
data: {day: dayFiltered},
type: 'POST'
});
})
它接收所选值并将其传递到控制器方法中,该方法将为新的选择下拉菜单准备所需的数组。我的目标是用所选时间段的可用日期列表填充这个新的select下拉列表
被调用的控制器方法是:
def get_valid_date_range
respond_to do |format|
day = params[:day] # day param from javascript file
availableDates = valid_date_range(day) # logic that works out available dates
format.js { render :available_dates_select, :locals => { :dates => availableDates} }
end
end
可用的_dates_select.js.erb文件为:
$(function() {
alert("test")
$("div#jo").html("<%= escape_javascript dates.to_json %>")
});
我需要做的是将这个数组转换成一个select下拉列表。在JavaScript文件中,然后将选择菜单添加到视图中,而不是原始数组
我尝试了这里的一些代码片段,但似乎都不起作用
如果您能举个例子学习,我将不胜感激。试试看
$("div#jo").html("<%= escape_javascript select_tag(:dates, options_for_select(dates)) %>")
这将创建一个空的选择下拉框。$divjo.html“选择日期”%>为我工作。你说得对。我很少使用select_标记,所以我总是忘记您需要使用options_for_select手动构建选项。我建议不要尝试混合使用JavaScript和ERB。要么将HTML呈现为display:none在ERB中,要么呈现为JSON,并让JavaScript呈现HTML。关注点分离。
$("div#jo").html("<%= escape_javascript select_tag(:dates, options_for_select(dates)) %>")