2012-09-27 59 views
3

我有兩個下拉在選擇標籤列表中的項目jQuery的:選擇標籤列表的變化選項自動

第一選擇標記有一年 第二選擇標籤的列表中有一個月的名單

<SELECT id="year" onchange="showData();"> 
    <OPTION VALUE="2012">2012 
    <OPTION VALUE="2011">2011 
    <OPTION VALUE="2010">2010 
    <OPTION VALUE="2009">2009 
    <OPTION VALUE="2008">2008 
</SELECT> 

<SELECT id="month" onchange="showData();"> 
    <OPTION VALUE="jan">jan 
    <OPTION VALUE="feb">feb 
    <OPTION VALUE="mar">mar 
     . 
     . 
    <OPTION VALUE="dec">dec 
</SELECT> 

所以如何我可以5秒自動& 60秒後更改爲每月一年

這將是我的jQuery

function changeMonthYear() {  
    //what to code here to change option of select tag 
    //automatically after some time 
    //say 5 sec per month & after 60 sec year will be changed 
    showData();  
} 

showData() {  
    //some logic will show data for selected year & month  
} 

如何得到解決它

+1

你想改變它到什麼?否則,jQuery delay()或timeOut()將會起作用。用戶選擇框始終在改變數值會不會令人困惑? – jtheman

+0

其幻燈片放映 –

回答

4

嘗試

function changeYear() { 

     $('option:selected', '#year').removeAttr('selected').next('option').attr(
       'selected', 'selected'); //your id of select tag is 'year' 

     showData(); 

    } 

    function changeYearMonth() { 

     $('option:selected', '#month').removeAttr('selected').next('option') 
       .attr('selected', 'selected'); //your id of select tag is 'month' 

     showData(); 

    } 

    setInterval(changeYear, 60000); 
    setInterval(changeYearMonth, 5000); 

    showData(){ 

    //some logic will show data for selected year & month 

    } 
+0

謝謝我會嘗試 –

+1

gr8它工作正常,非常感謝 –

+0

歡迎,現在你可以接受它作爲你的答案 –

0
var i=0,j=0; 

function changeMonthYear() { 

     //what to code here to change option of select tag 
     //automatically after some time 
     //say 5 sec per month & after 60 sec year will be changed 
     setInterval(showData('year'),1000*60); 
     setInterval(showData('month'),1000*5); 

    } 
function showData(that) 
{ 
if(that=='year') 
{  
document.getElementById(that).getElementsByTagName('option')[i].selected=true; 
    i++; 
} 
else 
{ 
document.getElementById(that).getElementsByTagName('option')[j].selected=true; 
j++; 
} 
} 
changeMonthYear(); 
1

這裏有一個簡單的解決方案,一旦它通過所有的選項,它會再次從開始繼續:

var i=0; 
function changeYear() { 
    var count = $('#year option').length; 
    i = (i == count) ? 0 : i; 
    $('#year').val($('#year option').eq(i++).val()); 
} 

setInterval(changeYear, 1000); // example is 1 second! 

Here's a fiddle

你必須做同樣的事情來改變這個月,只是覺得我會留在這裏,因爲它比其他例子更乾淨(在我看來)

相關問題