2013-12-18 42 views
0

我有任務,當我選擇12小時單選按鈕然後下拉值根據上午和下午更改,如果我選擇24小時單選按鈕然後下拉值是1到24.我能夠完成這個任務,但現在選擇框顯示throught循環的值。怎麼能做到這一點。我想循環在選擇框根據單選按鈕

我的代碼是:

<select class="describe"> 
    <option name="name" value="1">select type</option> 

    </select> 
<div> 
    <input type="radio" id="class" name="type" value="1" checked>12 hour <br/> 
    <input type="radio" id="Club" name="type" value="2" >24 hour<br/> 
</div> 

的jQuery:

<script> 
    var listA = [ 
     { name: '1am', value: '1am' }, 
     { name: '2am', value: '2am' }, 
     { name: '3am', value: '3am' } 
    ]; 
    var listB = [ 
     { name: '12', value: '12' }, 
     { name: '13', value: '13' }, 
     { name: '14', value: '14' } 
    ]; 
    $(document).ready(function() { 
     $('#class').bind('click', function() { 
      $('.describe').empty(); 
      $.each(listA, function (index, value) { 
       $('.describe').append(
        '<option value="' + value.value + '">' + value.name + '</option>' 
       ); 
      }); 
     }); 
     $('#Club').bind('click', function() { 
      $('.describe').empty(); 
      $.each(listB, function (index, value) { 
       $('.describe').append(
        '<option value="' + value.value + '">' + value.name + '</option>' 
       ); 
      }); 
     }); 
    }); 
</script> 

迴路選擇代碼(這是由我試過):

$(document).ready(function() { 
    $('.seconds').each(function() { 
     for (var i = 00; i <= 60; i++) { 
      $('<option />').val(i).html(' ' + i).appendTo($(this)); 
     } 
    }); 
}); 
+1

哪裏是在你的HTML代碼中的類 「秒」 的元素? – jwulf

+0

第二個1到60 ... – sonalgoyal

+1

jwulf表示在html中沒有「秒」 – JNF

回答

0

應該以這種方式工作:

function fillHoursSelect(mode) { 
     if(mode === 24) { 
      $('.describe').each(function() { 
       for(i = 0; i <= 23; i++) { 
        $('<option value="' + i + '">' + i + '</option>').appendTo($(this)); 
       } 
      }); 
     } 
     else if(mode === 12) { 
      $('.describe').each(function() { 
       for(i = 1; i <= 12; i++) { 
        $('<option value="' + i + 'am">' + i + 'am</option>').appendTo($(this)); 
       } 
       for(i = 1; i <= 12; i++) { 
        $('<option value="' + i + 'pm">' + i + 'pm</option>').appendTo($(this)); 
       } 
      }); 
     } 
    } 

    $('#Club').bind('click', function() { 
     $('.describe').empty(); 
     fillHoursSelect(24); 
    }); 
    $('#class').bind('click', function() { 
     $('.describe').empty(); 
     fillHoursSelect(12); 
    }); 

工作JSFiddle

+0

還是我錯誤地發現了你的問題,並且秒鐘已經在工作,你想要的時間也一樣嗎? – jwulf

+1

是你的答案是正確的,但它不是我的問題。我的問題是當我點擊12小時然後我的下拉值改變思想選擇循環而不是(var listA = [ {name:'1am',value:'1am'} , {name:'2am',value:'2am'}, {name:'3am',value:'3am'} ];)手動添加。相同的24小時。 – sonalgoyal

+0

編輯答案。那你在找什麼? – jwulf

0
function setupHourOptions(selectElement, format) 
{ 
    var list = ""; 
    list +="<option value='-1'>select type</option>" 
    for(var i = 0; i <= 24; i++) 
    { 
     var isAm = (Math.floor(i/12) == 0); 
     var hoursAmPm = (i % 12); 
     if(hoursAmPm == 0) hoursAmPm = 12; 
     list +="<option value='" + i + "'>" 
     list += format == '12h' 
     ? hoursAmPm + (isAm ? " am" : " pm") 
     : i; 

     list +="</option>\n"; 

    } 
    selectElement.html(list); 
} 

$(document).ready(
    function(){ 
     var hourFormatSelect = $("select.describe"); 
     $("input[name='hourformat']:radio").change(
      function() 
      { 
       setupHourOptions(hourFormatSelect, this.value); 
      }    
     ); 

     // set up default format at load 
     var defaultFormat = $("input[name='hourformat']:checked").val(); 
     setupHourOptions(hourFormatSelect, defaultFormat); 
    } 
); 

JsFiddle

相關問題