3

Rails アプリケーションでjQuery UI Sliderを使用しています。

そのため、フォームが送信されたときに jQuery UI Slider の値をデータベースに保存しようとしています。

私のコードは次のとおりです。

  <div>
    <p>
      <%= f.label(:amount, 'Amount') %>
      <div id="slider"></div>
      <%= f.text_field(:amount, :maxlength => 3, :size => 2) %>
    </p>
  </div>

スライダーの次の jquery:

  $(function() {
    $("#slider").slider({
      range: "max",
      min: 0,
      max: 10,
      value: 0,
      slide: function(event, ui) {
        $("#amount").val(ui.value);
      }
    });
    $("#amount").val($("#slider").slider("value"));
  }); 

上記のコードはすべて正常に動作しています。しかし、ページを再度編集すると、データベースの値ではなく、スライダーの最小値 (つまり 0) が表示されます。では、どうすればそれを達成できますか?

4

1 に答える 1

3

value問題は、スライダーを初期化するときに を 0 に設定していることだと思います。代わりにこのコードを試してみてください。私は試していませんが、要点は、スライダーがロードされたときにスライダーを常に 0 に設定しない限り、イニシャライザーのパラメーターを変更する必要があるということvalueです。

$(function() {
    $("#slider").slider({
      range: "max",
      min: 0,
      max: 10,
      value: $("#amount").val(),
      slide: function(event, ui) {
        $("#amount").val(ui.value);
      }
    });
    $("#amount").val($("#slider").slider("value"));
  }); 
于 2012-12-19T05:43:18.893 に答える