【问题标题】:Range Slider Using Ruby on Rails使用 Ruby on Rails 的范围滑块
【发布时间】:2015-11-17 07:05:13
【问题描述】:

使用Ruby on Rails。我的滑块代码如下:

<%= range_field_tag(:sliderRangeRails) %>

这给了我如下滑块:

但我想要如下所示的范围滑块:

它有两个滑块,并使用#('something').slider jquery 方法提供两个值。我在 ruby​​ 中的代码应该是什么来显示滑块,如第二张图片所示。

【问题讨论】:

    标签: jquery ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    我认为您指的是 jQuery UI 滑块。如果你的应用中还没有 jquery-ui,你可以这样设置:

    gem 'jquery-ui-rails' 添加到您的Gemfile

    //= require jquery-ui 添加到application.js

    *= require jquery-ui 添加到application.css

    运行bundle

    在您的视图中,创建一个 div 来容纳您的滑块:

    <div id="the_slider"></div>
    

    然后为获取滑块数据的属性在表单中添加一对隐藏字段:

    <%= form_for @thing do |thing_form| %>
        <%= thing_form.hidden_field :data1 %>
        <%= thing_form.hidden_field :data2 %>
        <%= thing_form.submit "Submit" %>
    <% end %>
    

    最后一部分是你的 JavaScript,它可以放在视图中或单独的 js 文件中:

    $(document).ready(function() {
        var slider = $("#the_slider").slider({
            range: true,
            min: 200,
            max: 500,
            values: [250, 450],
            slide: function(event, ui) {
                $("#thing_data1").val(ui.values[0]);
                $("#thing_data2").val(ui.values[1]);
            }
        });
        $("#thing_data1").val(slider.slider("values")[0]);
        $("#thing_data2").val(slider.slider("values")[1]);
    });
    

    thing_data1thing_data2id 在这种情况下form_for 将提供给hidden_field。此外,当然,您可以在将数据分配给hidden_field input value 之前,对slide: 回调函数中滑块的值做任何您想做的事情。

    编辑:我给了hidden_field input's 来自滑块的初始值,因此如果客户端不移动一个或两个滑块,它们将由表单提交把手。

    【讨论】:

    • 使用上面的代码。我必须将表单提交给 db。但是,我需要在用户每次停止slider 时捕获值。我用 HTML 编写代码。而不是 ruby​​。但是,我的代码没有显示滑块。看到滑块div 中的其他文本。对于我的代码。我使用stop 事件而不是slide.event。
    • 您还在使用 Rails 应用程序中的滑块吗?因为如果不是,则需要在 HTML 文档中获取 jQuery UI 文件。
    • 我在部分页面中添加范围滑块。当用户从多选下拉菜单中进行选择时,将部分页面附加到另一个页面上。一切正常。但是,我在主页中呈现的部分视图中看不到范围滑块。但是,我可以看到部分页面中的文本。我在 application.js 和 @987654344 中添加了 jquery-ui @.
    • 你把滑块的 JavaScript 放在哪里了?
    • 它与 Jquery 一起工作。我将脚本保留在我的部分页面本身。以前,它没有出现滑块,因为脚本没有在正确的时间编译。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    相关资源
    最近更新 更多