2012-09-05 32 views
0

這裏是我的代碼的完整代碼:的Javascript 2個日期選擇器衝突

<!doctype html> 

<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Date Picker</title> 
</head> 
<body> 
<strong>Departing:</strong><br/> 
<select name='dateSingleMonthDeparting' onChange='changeDate(this.options[selectedIndex].value);'> 
    <option value='na'>Month</option> 
    <option value='1'>January</option> 
    <option value='2'>February</option> 
    <option value='3'>March</option> 
    <option value='4'>April</option> 
    <option value='5'>May</option> 
    <option value='6'>June</option> 
    <option value='7'>July</option> 
    <option value='8'>August</option> 
    <option value='9'>September</option> 
    <option value='10'>October</option> 
    <option value='11'>November</option> 
    <option value='12'>December</option> 
</select> 
<select name='dateSingleDayDeparting' id='day'> 
    <option value='na'>Day</option> 
</select> 
<select name='dateSingleYearDeparting' id='year'> 
    <option value='na'>Year</option> 
</select><br/> 



<strong>Returning:</strong><br/> 
<select name='dateSingleMonthReturning' onChange='changeDate(this.options[selectedIndex].value);'> 
    <option value='na'>Month</option> 
    <option value='1'>January</option> 
    <option value='2'>February</option> 
    <option value='3'>March</option> 
    <option value='4'>April</option> 
    <option value='5'>May</option> 
    <option value='6'>June</option> 
    <option value='7'>July</option> 
    <option value='8'>August</option> 
    <option value='9'>September</option> 
    <option value='10'>October</option> 
    <option value='11'>November</option> 
    <option value='12'>December</option> 
</select> 
<select name='dateSingleDayReturning' id='day'> 
    <option value='na'>Day</option> 
</select> 
<select name='dateSingleYearReturning' id='year'> 
    <option value='na'>Year</option> 
</select> 



<script> 
function changeDate(i){ 
    var e = document.getElementById('day'); 
    while(e.length>0){ 
     e.remove(e.length-1); 
     var j=-1; 
     if(i=="na"){ 
      k=0; 
     }else if(i==2){ 
      k=28; 
     }else if(i==4||i==6||i==9||i==11){ 
      k=30; 
     }else{ 
      k=31; 
     } 
    } 
    while(j++<k){ 
     var s=document.createElement('option'); 
     var e=document.getElementById('day'); 
     if(j==0){ 
      s.text="Day"; 
      s.value="na"; 
      try{ 
       e.add(s,null); 
      }catch(ex){ 
       e.add(s); 
      } 
     } 
     else{ 
      s.text=j; 
      s.value=j; 
      try{ 
       e.add(s,null); 
      }catch(ex){ 
       e.add(s); 
      } 
     } 
    } 
} 
var currentTime = new Date(); 
y = currentTime.getFullYear()+1; 
while (y-->1909){ 
    var s = document.createElement('option'); 
    var e = document.getElementById('year'); 
    s.text=y; 
    s.value=y; 
    try{ 
     e.add(s,null); 
    }catch(ex){ 
     e.add(s); 
    } 
} 
</script> 
</body> 
</html> 

我有兩個datepickers。當我改變第一個完美的作品,但如果我改變第二個功能將在第一個datepciker

我希望他們有自己的函數爲每個日期選擇器。我會怎樣做才能做到這一點?我已經試圖讓這樣的東西getElementById('day day2'),但它不起作用。

回答

3

您的select已將標記dayyear分配給您的標記。那是錯的。 ID應該是唯一的。

請將這些ID更改爲day1,year1,day2和year2。然後將這些ID作爲參數傳入此函數changeDate(this.value, "day1", "year1")changeDate(this.value, "day2", "year2")

現在定義爲CHANGEDATE

function changeDate(i, day, year) { 
    var e = document.getElementById(day); // please note that day is the variable passed 

    ................... 
} 

到無關的方面說明,this.options[selectedIndex].value是一樣this.value

+0

確定一切現在工作正常,但問題是一年。在今年沒有選項 –

+0

change'var e = document.getElementById('year');'to'var e = document.getElementById(year);'year現在是一個變量 – naveen

+0

我已經試過了,但它仍然是相同。我找不到問題。謝謝你的方式=) –

相關問題