【发布时间】:2017-08-30 10:16:11
【问题描述】:
我正在尝试在下拉列表更改为特定值时运行 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>
这是我希望在选择选项 4 时运行的 Javascript:
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 代码的正文中。
如果有人能解释为什么会发生这种情况并指出正确的方向来解决这个问题,我们将不胜感激。
【问题讨论】:
-
一旦您停止使用内联事件处理程序,转而使用
addEventListener等标准函数,此类问题通常会自行解决。在任何情况下,使用browser console (dev tools)(点击F12)并阅读任何错误。 -
@Xufox 如何修改我的代码以使用下拉列表合并 addEventListener?
标签: javascript google-chrome internet-explorer onchange