Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的天选择问题_Javascript_Html_Internet Explorer - Fatal编程技术网

javascript中的天选择问题

javascript中的天选择问题,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<

我在IE中有三个选择日期(日、月、年)的问题。这是HTML

<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中不是问题: