1

私は複数のjqueryタイムスパンスライダーについてこのガイドに従ってきました。Railsアプリから毎日の開始値を取得しようとしています。変数をjquery関数に正しく挿入するのに苦労しています。

開始時刻(1日あたり)を含む各曜日のフィールドがあります。例えば:

 @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

再考する必要があります。dayruby コードは既に実行されているため、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 に答える