使用JQuery UI将单选按钮转换为滑块元素

时间:2010-08-20 12:04:29

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

我有一个用单选按钮渲染的表单:

<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 Slider以某种方式滚动我自己,但我真的不知道从哪里开始。有没有人已经插上电源来实现这一目标?

1 个答案:

答案 0 :(得分:15)

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

我不确定每个问题包含在哪个内容中,因此我将您的内容放在<div class="question">中,然后给出输入标签(对于非JS用户来说降级得更好),就像这样整体: / p>

<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