JavaScript onChange没有在IE中触发

时间:2017-08-30 10:16:12

标签: javascript google-chrome internet-explorer onchange

当我将下拉列表更改为特定值时,我尝试运行javascript,这一切在Chrome中运行良好,但IE只是拒绝触发" onChange"功能

这是我的下拉列表代码:

<select name="typeTenancy" onchange='TenancyCheck(this.value);' required>
  <option value=""></option>                                                
  <option value="1">1 - Option 1</option>   
  <option value="2">2 - Option 2</option>   
  <option value="3">3 - Option 3</option>
  <option value="4">4 - Option 4</option>
  <option value="5">5 - Option 5</option>                                                           
</select>

以下是Javascript我希望在选择选项4时运行:

function TenancyCheck(val){
    var element=document.getElementById('tenancyDuration');
    if(val=='4')
    blockReqTenancy();
    else  
    displayTenancy();
}

function blockReqTenancy() {
    document.getElementById("tenancyDuration").style="display:block";
    document.getElementById("tenancyDuration").required=true;
}

function displayTenancy() {
    document.getElementById("tenancyDuration").style="display:none";
    document.getElementById("tenancyDuration").required=false;
}

当选择选项4时,它基本上会显示一个输入字段,但在使用Internet Explorer 11时没有显示任何内容。

我也检查过,并且已将脚本src放在HTML代码的正文中。

如果有人能够解释为什么会这样,并指出我正确的方向来解决这个问题,那将非常感激。

1 个答案:

答案 0 :(得分:1)

当你说getElementById时,你的id不会被称为&#34; tenancyDuration&#34;。你可以添加它。

对于IE稍微改变你的功能。喜欢style.display =&#34; block&#34 ;;并使用setAttribute函数

完整代码

<select name="typeTenancy" id ="tenancyDuration" onchange='TenancyCheck(this.value);' required>
 <option value=""></option>                                                
 <option value="1">1 - Option 1</option>   
 <option value="2">2 - Option 2</option>   
 <option value="3">3 - Option 3</option>
 <option value="4">4 - Option 4</option>
 <option value="5">5 - Option 5</option>                                                           
</select>

<script>
function TenancyCheck(val){
  var element=document.getElementById('tenancyDuration');
  if(val=='4')
   blockReqTenancy();
  else  
   displayTenancy();
}

function blockReqTenancy() {
document.getElementById("tenancyDuration").style.display="block";
document.getElementById("tenancyDuration").setAttribute("required", true); 
}

function displayTenancy() {
 document.getElementById("tenancyDuration").style.display="none";
 document.getElementById("tenancyDuration").setAttribute("required", false); 
}
</script>