2012-09-05 87 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

我已经试过了,但它仍然是相同。我找不到问题。谢谢你的方式=) –

相关问题