2010-12-28 3 views
0

Ich würde gerne einen Schieberegler Zeit (von 1:00 bis 4:00) wählen, aber es funktioniert nicht. Es kommuniziert nicht mit 'auswählen'. Kann mir jemand helfen?Problem mit jQuery Slider - Zeit

<script> 
    $(function() { 
     var select = $("#czastrwania"); 
     var slider = $("<div id='slider'></div>").insertAfter(select).slider({ 
     min: 60, 
     max: 240, 
     step: 30, 
     range: "min", 
value: select[ 0 ].selectedIndex + 1, 
      slide: function(e, ui) { 
       var hours = Math.floor(ui.value/60); 
      var minutes = ui.value - (hours * 60); 

      if(hours.length == 1) hours = '0' + hours; 
      if(minutes.length == 1) minutes = '0' + minutes; 
      select[ 0 ].selectedIndex = ui.value - 1; 
      } 
     }); 
     $("#czastrwania").change(function() { 
      slider.slider("value", this.selectedIndex + 1); 
     }); 
    }); 
    </script> 
<select id="czastrwania" name="czastrwania"> 
<option value="1:00">1:00</option> 
    <option value="1:30">1:30</option> 
    <option value="2:00">2:00</option> 
    <option value="2:30">2:30</option> 
    <option value="3:00">3:00</option> 
    <option value="3:30">3:30</option> 
    <option value="4:00">4:00</option> 
    </select> 

Antwort

1

Mit jQuery können Sie

select.val('4:30') 

keine Notwendigkeit dafür nur sagen:

select[ 0 ].selectedIndex = ui.value - 1; 
0

Jetzt 50% es funktioniert. Wenn ich am Schieberegler ändere, ändert sich das bei Auswahl, aber es funktioniert nicht, wenn ich Werte bei Auswahl ändere.

<script> 
    $(function() { 
     var select = $("#czastrwania"); 
     var slider = $("<div id='slider'></div>").insertAfter(select).slider({ 
     min: 60, 
     max: 240, 
     step: 30, 
     range: "min", 
value: select[ 0 ].selectedIndex + 1, 
      slide: function(e, ui) { 
      var hours = Math.floor(ui.value/60); 
      var minutes = ui.value - (hours * 60); 

      if(minutes == 0) minutes = '00'; 
      select[ 0 ].value = hours+':'+minutes; 
      } 
     }); 
     $("#czastrwania").change(function() { 
      slider.slider("value", select[ 0 ].value); 
     }); 
    }); 
    </script> 
0

Gelöst.

<script> 
    $(function() { 
     var select = $("#czastrwania"); 
     var slider = $("<div id='slider'></div>").insertAfter(select).slider({ 
     min: 60, 
     max: 240, 
     step: 30, 
     range: "min", 
value: select[ 0 ].selectedIndex + 1, 
      slide: function(e, ui) { 
      var hours = Math.floor(ui.value/60); 
      var minutes = ui.value - (hours * 60); 

      if(minutes == 0) minutes = '00'; 
      select[ 0 ].value = hours+':'+minutes; 
      } 
     }); 
     $("#czastrwania").change(function() { 
      slider.slider("value", 60 * select[ 0 ].value.replace(':','.')); 
     }); 
    }); 
    </script>