Search code examples
jquery-uisliderjquery-ui-slider

Jquery ui slider with string values?


I am working with jQuery UI slider.

Here is the code i am using:

$(function() {
        $( "#slider" ).slider({
            value:1,
            min: 0,
            max: 5,
            step: 1,
            slide: function( event, ui ) {
                $( "#amount" ).val( "$" + ui.value );
            }
        });
        $( "#amount" ).val( "$" + $( "#slider" ).slider( "value" ) );
    });

There will be 5 steps and I'd like to show the strings in each step instead of the numbers:

1=very sad
2=sad
3=not so sad
4=happy
5=very happy

How can I do this ?


Solution

  • You can put your step labels in an array, then use the slider's value as an index into that array:

    var steps = [
        "very sad",
        "sad",
        "not so sad",
        "happy",
        "very happy"
    ];
    
    $(function() {
        $("#slider").slider({
            value: 1,
            min: 0,
            max: 4,
            step: 1,
            slide: function(event, ui) {
                $("#amount").val(steps[ui.value]);
            }
        });
        $("#amount").val(steps[$("#slider").slider("value")]);
    });