【问题标题】:Using JQuery UI to convert radio buttons into slider elements使用 JQuery UI 将单选按钮转换为滑块元素
【发布时间】:2011-04-01 15:12:13
【问题描述】:

我有一个用单选按钮呈现的表单,如下所示:

<h2>How long is your hair?</h2>
<input type="radio" name="71" value="98">Short 
<input type="radio" name="71" value="99">Medium 
<input type="radio" name="71" value="100">Long 

大约有 15 个这样的问题,我希望使用 JQuery 用滑块呈现整个表单(Jquery UI 似乎是最有可能的候选者)。

我找到了一些用于将选择框转换为滑块的插件(例如selectToUISlider),但没有找到用于单选按钮的插件。

我确信可以使用标准 UI 滑块以某种方式滚动我自己的滑块,但我真的不知道从哪里开始。有没有人已经做了一个插件来实现这一点?

【问题讨论】:

    标签: jquery forms jquery-ui user-interface radio-button


    【解决方案1】:

    这是一个选项的基本结构,我不确定你的问题有什么不同(它们都有 3 个选项吗?)所以样式会有所不同,只是试图展示这个概念。

    我不确定每个问题包含什么内容,因此我将您的内容放在&lt;div class="question"&gt; 中,然后给出输入标签(对于非 JS 用户来说会降低一点),总体而言是这样的:

    <div class="question">
      <h2>How long is your hair?</h2>
      <label><input type="radio" name="71" value="98">Short</label>
      <label><input type="radio" name="71" value="99">Medium</label>
      <label><input type="radio" name="71" value="100">Long</label>
    </div>
    

    然后用一段脚本把它变成一个滑块,像这样:

    $(".question").each(function() {
        var radios = $(this).find(":radio").hide();
        $("<div></div>").slider({
          min: parseInt(radios.first().val(), 10),
          max: parseInt(radios.last().val(), 10),
          slide: function(event, ui) {
            radios.filter("[value=" + ui.value + "]").click();
          }
        }).appendTo(this);
    });
    

    You can give it a try here

    【讨论】:

    • 这是我在 SO 上见过的最好的答案之一。请问我们可以再多点 Nick Cravers 吗?
    • 这太棒了,而且效果很好。在其他新闻中:jsfiddle 很棒
    猜你喜欢
    • 1970-01-01
    • 2016-07-14
    • 2011-01-03
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    相关资源
    最近更新 更多