Search code examples
materializenouislider

MaterializeCSS noUiSlider range not working


I'm trying to create a MaterialiseCSS range slider which is based on noUiSilder. The documentation says:

Add a range slider for values with a wide range. This one is set to be a number between 0 and 100. We have two different types of sliders. nouiSlider is a 3rd party plugin which we've modified. To use the noUiSlider, you will have to manually link the nouislider.css and nouislider.js files located in the extras folder.

I did everyting unfortunately it is showing the defaut HTML range (like the one in the link).

My html:

<!DOCTYPE html>
<html>
    <head>
        <!--Import Google Icon Font-->
        <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
        <!--Import materialize.css-->
        <link type="text/css" rel="stylesheet" href="css/materialize.min.css"  media="screen,projection"/>
        <link href="extras/noUiSlider/nouislider.css" rel="stylesheet">
        <link href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="Stylesheet"></link>




        <!--Import jQuery before materialize.js-->
        <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <script type="text/javascript" src="js/materialize.min.js"></script>
        <script type="text/javascript" src="extras/noUiSlider/nouislider.min.js"></script>
        <script type="text/javasript" src="js/phonefinder.js"></script>
    </head>

    <body class="grey lighten-4">   
        <form>
            <div class="input-field">
                <p class="range-field">
                  <input type="range" id="test5" min="0" max="100" />
                </p>
            </div>
        </form>
    </body>
</html>

js/phonefinder.js:

$(function(){
var slider = document.getElementById('test5');
noUiSlider.create(slider, {
 start: [20, 80],
 connect: true,
 step: 1,
 range: {
   'min': 0,
   'max': 100
 },
 format: wNumb({
   decimals: 0
 })
});
});

What am I doing wrong?


Solution

  • The noUiSlider range isn't a a input type, it should be a div.

    So:

        <form>
            <div class="input-field">
                <p class="range-field">
                  <input type="range" id="test5" min="0" max="100" />
                </p>
            </div>
        </form>
    

    should be:

        <form>
            <div id="connect"></div>
        </form>