2

我正在尝试在 Rails 3.2的simple_form中插入一个jQuery UI 滑块。

我创建了一个新的输入类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.

以下是设置一个值的方法:

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

以下是设置多个值的方法:

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

查看jquery API文档以获取有关设置值的更多文档。

于 2013-09-10T09:48:24.837 回答