javascript - 如何将字符串数组转换为 Rails/JavaScript 文件中的选择下拉菜单?

标签 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: "/activities/get_valid_date_range", 
    data: {day: dayFiltered}, 
    type: 'POST'
  });
})

它接受选定的值并将其传递到 Controller 方法中,该方法准备新的选择下拉菜单所需的数组。我的目标是用所选时间段的可用日期列表填充这个新的选择下拉列表。

被调用的 Controller 方法是:

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

available_dates_select.js.erb 文件是:

$(function() {
    alert("test")
    $("div#jo").html("<%= escape_javascript dates.to_json %>")
});

为了测试,我将从 Controller 传入的数组内容转换为 JSON,然后将其附加到 <div>在我看来,看看它是否具有我期望的内容。

JavaScript更新后查看:

["14th October 2014","21st October 2014","28th October 2014","4th November 2014","11th November 2014","18th November 2014","25th November 2014","2nd December 2014","9th December 2014","16th December 2014","23rd December 2014","30th December 2014","6th January 2015","13th January 2015","20th January 2015","27th January 2015","3rd February 2015","10th February 2015","17th February 2015","24th February 2015","3rd March 2015","10th March 2015","17th March 2015","24th March 2015","31st March 2015","7th April 2015","14th April 2015"]

我需要做的就是获取这个数组并将其变成一个选择下拉列表。然后在 JavaScript 文件中将选择菜单而不是原始数组添加到 View 中。

我尝试了这里的一些代码片段,但似乎都不起作用。

非常希望有一个可以学习的例子。

最佳答案

尝试

$("div#jo").html("<%= escape_javascript select_tag(:dates, options_for_select(dates)) %>")

关于javascript - 如何将字符串数组转换为 Rails/JavaScript 文件中的选择下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26371669/

相关文章:

javascript - 使用 Flask 和 jquery 显示弹出窗口

javascript - 在 netlify cms 和 gatsby js 中使图像可选

javascript - ID 和 CLASS 在 HTML 标签上共存

javascript - 单击 <div> 以聚焦 &lt;input&gt;

javascript - 添加列表项客户端

ruby-on-rails - 无法使用渲染:text with a proc in Rails 4

javascript - 从不同的域加载 json?

javascript - JavaScript 上的导入/导出命令出现问题

javascript - 添加下拉值的新输入字段

mysql - 数据库 :seed not loading models