Slider range avec échelle de lettres

  • Auteur de la discussion Auteur de la discussion poupilou
  • Date de début Date de début
WRInaute passionné
Salut à tous,

J'essaie de construire un slider range un peu comme ce modèle là http://jqueryui.com/slider/#range mais au lieu d'avoir une échelle de chiffre je voudrais avoir une échelle de lettres (A, B, C, D, E, F, G, H, etc.... jusqu'à Z) mais je n'arrive pas à le faire fonctionner avec des lettres comme échelle, est-ce possible ?

Voici mon code :
Code:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Slider - Range slider</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script>
$(function() {
var resChoix = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
    $( "#slider-range" ).slider({
      range: true,
      min: 0,
      max: resChoix.length-1,
      values: [ 4, 10 ],
      slide: function( event, ui ) {
         $( "#choix" ).val( resChoix[ui.values[ 0 ]].toFixed(2) + " \340 " + resChoix[ui.values[ 1 ]].toFixed(2) + "" );
      }
    });
    $( "#choix" ).val( "de " + resChoix[$( "#slider-range" ).slider( "values", 0 )].toFixed(2) + " \340 " + resChoix[$( "#slider-range" ).slider( "values", 1 )].toFixed(2) + "" );
});
</script>
</head>
<body>
<p>
<label for="choix">Choix :</label>
<input type="text" id="choix" readonly style="border:0; color:#f6931f; font-weight:bold;">
</p>
<div id="slider-range"></div>
</body>
</html>
Merci pour vos réponses.
 
WRInaute accro
Je n'ai pas trop compris ce qui ne pas pas chez toi (pas testé), mais j'ai fait un petit test vite fait et ceci fonctionne:
PHP:
<span class="syntaxhtml"><span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><!</span><span class="syntaxdefault">doctype html</span><span class="syntaxkeyword">><br /><</span><span class="syntaxdefault">html lang</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"en"</span><span class="syntaxkeyword">><br /><</span><span class="syntaxdefault">head</span><span class="syntaxkeyword">><br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">meta charset</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"utf-8"</span><span class="syntaxkeyword">><br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">title</span><span class="syntaxkeyword">></span><span class="syntaxdefault">jQuery UI Slider </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> Range slider</span><span class="syntaxkeyword"></</span><span class="syntaxdefault">title</span><span class="syntaxkeyword">><br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">link rel</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"stylesheet"</span><span class="syntaxdefault"> href</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"</span><span class="syntaxkeyword">><br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">script src</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"//code.jquery.com/jquery-1.10.2.js"</span><span class="syntaxkeyword">></span><span class="syntaxdefault"></script><br /></span>  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script><br />  <link rel="stylesheet" href="/resources/demos/style.css"><br />  <script><br />  $(function() {<br />      <br />    var resChoix = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];<br />      <br />    $( "#slider-range" ).slider({<br />      range: true,<br />      min: 0,<br />      max: resChoix.length - 1,<br />      values: [ 4, 10 ],<br />      slide: function( event, ui ) {<br />        $( "#amount" ).val( resChoix[ui.values[ 0 ]] + " - " + resChoix[ui.values[ 1 ]] );<br />      }<br />    });<br />    $( "#amount" ).val(resChoix[$( "#slider-range" ).slider( "values", 0 )] + " - " + resChoix[$( "#slider-range" ).slider( "values", 1 )] );<br />  });<br />  </script><br /></head><br /><body><br /> <br /><p><br />  <label for="amount">Price range:</label><br />  <input type="text" id="amount" readonly style="border:0; color:#f6931f; font-weight:bold;"><br /></p><br /> <br /><div id="slider-range"></div><br /> <br /> <br /></body><br /></html><br /></span>
Demo: -http://goo.gl/fsCXUH

Edit: J'ai testé ton code, l'erreur est affichée clairement dans la console:
Code:
Uncaught TypeError: resChoix[$(...).slider(...)].toFixed is not a function
 
WRInaute passionné
Ah vraiment un grand merci Spout, ton code marche nickel :D

Tu me sort vraiment une épine du pied :mrgreen:
 
Discussions similaires
Haut