2010-12-28 17 views
0

スライダを使って時間を選択したいのですが(1:00から4:00まで)、動作しません。それは '選択'と通信しません。誰でも助けてくれますか?jQueryスライダの問題 - 時間

<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> 

答えて

1

のjQueryを使用すると、ちょうどこのため

select.val('4:30') 

必要はありませんと言うことができます。

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

を今では50%のために働いています。スライダ上で変更すると、選択時に変更されますが、選択時に値を変更すると機能しません。

<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

解決済み。

<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> 
関連する問題