1

我一直在关注这个关于多个 jquery 时间跨度滑块的指南。我试图从我的 Rails 应用程序中获取每日起始值。我正在努力让变量正确插入到 jquery 函数中。

我为一周中的每一天都有一个字段,其中包括开始时间(每天)。例如:

 @location.active_monday
 @location.active_tuesday
 @location.active_wednesday

显示滑块的 jquery 函数如下所示:

_sliderhtml: function(day){
            var displayday = day.charAt(0).toUpperCase() + day.substr(1);
            var html = ""+ 
                '<div class="fieldrow spacer">' +
                    '<div>' +
                      '<input type="text" name="location['+day+'_on_wifi]" id="'+day+'-time1" value="xxxxxxx" > - '+

在输入值中,我试图从我的模型中插入值,但我无法找出正确的语法。试过:

 value="<%= "@location.active_wednesday" %>

哪个有效,但我需要用“+day+”替换这一天。例如:

 value="<%= "@location.active_'+day+'" %>

有没有办法做到这一点,还是我需要重新考虑?

4

2 回答 2

5

你需要重新考虑。您不能day在 ruby​​ 代码上使用您的 javascript 变量(例如,在您的示例中),因为它已经运行。如果您需要 javascript 能够访问这些值,则需要在呈现的视图上。

你可以尝试这样的事情:

var active_values = {
  monday:    "<%= @location.active_monday %>",
  tuesday:   "<%= @location.active_tuesday %>",
  wednesday: "<%= @location.active_wednesday %>"
};

然后,在您的 JS 函数上,只需访问数据:

'<input value="' + active_values[day] + '" />' ;
于 2012-10-03T22:35:40.860 回答
1

您需要做的是分配一个 javascript 位置变量。

var location = <%= @location.to_json %>;

然后在你的javascript方法中你可以使用。

value=location["active_" + day];
于 2012-10-03T22:34:34.377 回答