2

Rails 3.2のsimple_form内にjQuery UI Sliderを挿入しようとしています。

新しい入力クラスを作成しますapp/inputs/slider_input.rb

class SliderInput < SimpleForm::Inputs::Base
  def input
    "<div class='slider-input'></div>#{@builder.hidden_field(attribute_name, input_html_options)}"
  end
end

ここで_form.html.erb

<%= simple_form_for(@post, :html => {:class => 'form-horizontal' }) do |f| %>
  <%= f.input :name %>
  <%= f.input :rating, :as => :slider, :input_html => { :value => '6' } %>
  <%= f.input :telephone %>
  <%= f.button :submit, :class => 'pull-right' %>
<% end %>

問題は、生成されたコードが次のようになることです。

<div class="controls">
<div class="slider-input ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all">
    <a href="#" class="ui-slider-handle ui-state-default ui-corner-all"></a>
</div>
<input type="hidden" value="10" name="post[rating]" id="post_rating" class="slider required"></div>

6非表示フィールドにデフォルト値を渡すにはどうすればよいですか? 現在、デフォルトは 10 です。理由はわかりませんが、おそらく JavaScript の場合です。

$(document).ready(function() {
    $(".slider-input").slider({
            min: 1,
            max: 10,
            values: [ 6 ],
            step: 0.5,
            slide: function(event, ui) {
                $(this).next('input').val(ui.value);
                $(this).parent().find('span.slider-value').html(ui.value);
            }
    });
});

また、カスタム スライダー入力を実現するための最良の方法はありますか? 申し訳ありませんが、私は Rails の初心者です。

ありがとう

4

1 に答える 1

2

values代わりにを使用して、スライダーを正しく初期化していないようですvalue

1 つの値を設定する方法は次のとおりです。

$( ".selector" ).slider({ value: 10 });

複数の値を設定する方法は次のとおりです。

$( ".selector" ).slider({ values: [ 10, 25 ] });

値の設定に関する詳細なドキュメントについては、 jquery APIドキュメントを参照してください。

于 2013-09-10T09:48:24.837 に答える