javascript中的天选择问题
我在IE中有三个选择日期(日、月、年)的问题。这是HTMLjavascript中的天选择问题,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,我在IE中有三个选择日期(日、月、年)的问题。这是HTML <li><label for="dobYear">Date of birth*:</label> <select name="dobDay" id="dobDay"> <option value="1">1</option> <option value="2">2<
<li><label for="dobYear">Date of birth*:</label>
<select name="dobDay" id="dobDay">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="dobMonth" id="dobMonth" onchange="getDays();">
<option value="01">Jan</option>
<option value="02">Fev</option>
<option value="03">Mar</option>
<option value="04">Apr</option>
<option value="05">May</option>
<option value="06">Jun</option>
<option value="07">Jul</option>
<option value="08">Aug</option>
<option value="09">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<select name="dobYear" id="dobYear" onchange="getDays();">
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
<option value="2005">2005</option>
</select>
</li>
出生日期*:
1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
简
钒铁
破坏
四月
也许
六月
七月
八月
九月
十月
十一月
12月
2010
2009
2008
2007
2006
2005
我有一个javascript代码来计算每个月/年的天数
function getDays()
{
var month = document.getElementById("dobMonth").options[document.getElementById("dobMonth").selectedIndex].value;
var year=document.getElementById("dobYear").options[document.getElementById("dobYear").selectedIndex].value;
var daysoutput;
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){
var j = 31;
}
else if (month == 4 || month == 6 || month == 9 || month == 11){
var j = 30;
}
else{
if (year%4==0){
j=29;
}
else{
j=28;
}
}
for (var i=1;i<=j;i++){
daysoutput+='<option value="'+i+'">'+i+'</option>';
}
document.getElementById('dobDay').innerHTML=daysoutput;
}
函数getDays()
{
var month=document.getElementById(“dobMonth”).options[document.getElementById(“dobMonth”).selectedIndex].value;
var year=document.getElementById(“dobYear”)。选项[document.getElementById(“dobYear”)。selectedIndex]。值;
var daysoutput;
如果(月=1 |月=3 |月=5 |月=7 |月=8 |月=10 |月=12){
var j=31;
}
如果(月==4 | |月==6 | |月==9 | |月==11){
var j=30;
}
否则{
如果(第%4年==0){
j=29;
}
否则{
j=28;
}
}
对于(var i=1;i我认为您应该尝试将选项值大小写为string或parseInt进行比较。这可能会解决您的问题。例如:
if(month == 3)
到
或
我认为您应该尝试将选项值大小写为string或parseInt进行比较。这可能会解决您的问题。例如:
if(month == 3)
到
或
添加选项的正确方法是使用下拉元素的options
集合的.add()方法
工作示例:
window.onload=函数WindowLoad(){
var dtNow=新日期();
var year=dtNow.getFullYear();
FillDropDownRange(“ddlMonth”,1,12,dtNow.getMonth()+1);
FillDropDownRange(“年”,第5年,第1年,第1年);
FillDays();
};
函数FillDropDownRange(oDDL、rangeStart、rangeEnd、SelectedValue){
if(oDDL的类型==“字符串”)
oDDL=document.getElementById(oDDL);
而(oDDL.options.length>0)
oDDL.removeChild(oDDL.options[0]);
对于(var i=rangeStart;i添加选项的正确方法是使用下拉元素的options
集合的.add()方法
工作示例:
window.onload=函数WindowLoad(){
var dtNow=新日期();
var year=dtNow.getFullYear();
FillDropDownRange(“ddlMonth”,1,12,dtNow.getMonth()+1);
FillDropDownRange(“年”,第5年,第1年,第1年);
FillDays();
};
函数FillDropDownRange(oDDL、rangeStart、rangeEnd、SelectedValue){
if(oDDL的类型==“字符串”)
oDDL=document.getElementById(oDDL);
而(oDDL.options.length>0)
oDDL.removeChild(oDDL.options[0]);
对于(var i=rangeStart;i谢谢朋友们,我已经解决了这个问题,现在IE也可以了:
这就是解决方案:
我改变了这一行:
<label for="dobYear">Date of birth*:</label><select name="dobDay" id="dobDay"> in the html code to this
出生日期*:在html代码中
对此,
<span id="days"><label for="dobYear">Date of birth*:</label>
<select name="dobDay" id="dobDay">
出生日期*:
如您所见,我添加了一个要选择的容器(父)跨度
然后我将js代码更改如下:
for (var i=1;i<=j;i++){
daysoutput+='<option value="'+i+'">'+i+'</option>';
}
document.getElementById('dobDay').innerHTML=daysoutput;
for(var i=1;i谢谢朋友们,我已经解决了这个问题,现在IE也可以了:
这就是解决方案:
我改变了这一行:
<label for="dobYear">Date of birth*:</label><select name="dobDay" id="dobDay"> in the html code to this
出生日期*:在html代码中
对此,
<span id="days"><label for="dobYear">Date of birth*:</label>
<select name="dobDay" id="dobDay">
出生日期*:
如您所见,我添加了一个要选择的容器(父)跨度
然后我将js代码更改如下:
for (var i=1;i<=j;i++){
daysoutput+='<option value="'+i+'">'+i+'</option>';
}
document.getElementById('dobDay').innerHTML=daysoutput;
for(var i=1;i无法使用Internet Explorer设置select元素的innerHTML
您应该使用新选项()
var sel=document.getElementById(“mySelect”);
sel.options.length=0;//删除所有选项
对于(var i=0;i,不能使用Internet Explorer设置select元素的innerHTML
您应该使用新选项()
var sel=document.getElementById(“mySelect”);
sel.options.length=0;//删除所有选项
for(var i=0;iFebruary 29th,2000不存在。您真的应该正确格式化您的代码…我添加了“internet explorer”标记,因为它似乎是ie特有的错误。无论如何,我认为问题出在您的JS中。请尝试添加警报(daysoutput)
在函数的末尾查看其值,并获取一些错误控制台JavaScript@Goran我已经加上了,可以了FF@Goran所以问题不在于dayoutput变量2000年2月29日不存在。你真的应该正确格式化你的代码…我添加了“internet explorer”标签,因为它似乎是ie特有的bug。无论如何,我认为问题出在你的JS中。尝试添加alert(daysoutput)
在函数的末尾查看其值,并获取一些错误控制台JavaScript@Goran我已经加上了,可以了FF@Goran因此问题不在于dayoutput变量这在JavaScript中不是问题: