带有字母的jQuery UI范围滑块

时间:2015-03-02 13:47:05

标签: javascript jquery jquery-ui jquery-ui-slider

我有一个jQuery UI Range滑块,如下所示工作正常(几乎是jQuery API示例的复制和粘贴:

//Price range slider
$(function() {
    $( "#slider-range-price" ).slider({
        range: true,
        min: 300,
        max: 18499,
        values: [300,18499],
        slide: function( event, ui ) {
            $( "#amount-price" ).val( "£" + ui.values[ 0 ] + " - £" + ui.values[ 1 ] );
        }
    });
    $( "#amount-price" ).val( "£" + $( "#slider-range-price" ).slider( "values", 0 ) +
    " - £" + $( "#slider-range-price" ).slider( "values", 1 ) );
});

然而现在我需要第二个,但这次我需要它来处理字母而不是整数。 因此我需要min:'A'和max:'Z',因此范围是字母表的2个字母。 但我一直无法找到除滑块之外的整数或浮点数。 任何帮助表示赞赏 - 记住我已经做了很多web-dev,但我对jQuery很新。

3 个答案:

答案 0 :(得分:1)

您可以分别使用等同于minmax的ASCII密钥代码的AZ值,然后在{{1}中使用String.fromCharCode()要显示它们的事件。试试这个:

slide

Example fiddle

或者,如果您需要将发送到服务器的值放在$("#slider").slider({ min: 65, // = A max: 90, // = Z slide: function( event, ui ) { $('#display').text(String.fromCharCode(ui.value)); } }); 1之间,则可以修改26 func中的ASCII代码:

slide

答案 1 :(得分:0)

我建议使用一个数组,将整数值映射到字母表中的字母。

var alph = ["A", "B", "C", ..., "Z"];

因此用户范围介于0到25之间。然后显示数组中与所选整数对应的字母。例如:alph[2] // C

var alph = ["A", "B", "C", ..., "Z"];
$("#slider").slider({
  min: 0, // A
  max: 25, // Z
  slide: function( event, ui ) {
    $('#display').text(alph[ui.value]);
  }
 });

答案 2 :(得分:0)

已经有两个好的解决方案了,这里有第三个替代方案:使用基数为36的Number.toString(),并将最小值和最大值限制在A和Z之间:

$( "#slider-range-price" ).slider({
    range: true,
    min: 10,
    max: 35,
    values: [ 20, 26 ],
    slide: function( event, ui ) {
        $( "#amount-price" ).val( ui.values[ 0 ].toString(36) + " - " +
                                  ui.values[ 1 ].toString(36) );
    }
});

Here's a fiddle link