当我将下拉列表更改为特定值时,我尝试运行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代码的正文中。
如果有人能够解释为什么会这样,并指出我正确的方向来解决这个问题,那将非常感激。
答案 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>