javascript - Internet Explorer 不执行 onChange 函数

标签 javascript internet-explorer

我有这段代码,它应该通过使用控件 onChange 事件选中和取消选中表单复选框来隐藏和显示 DIV。它适用于 Chrome、Firefox、Safari 和 Opera,但 IE 8 和 9 拒绝合作...控制台中没有错误消息。有什么我想念的吗?

感谢您的帮助!

<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Demo</title>
<script type="text/javascript">
var divVisible = true;
function Passport() {
   if (divVisible) {
      document.getElementById('mydiv').style.visibility="hidden";
      divVisible = false;
   }
   else {
      document.getElementById('mydiv').style.visibility="visible";
      divVisible = true;
   }
}
</script>
</head>
<body>
   <form>
      <input type="checkbox" onchange="Passport();" value="Passport">Passport
   </form>
   <div style="height: 100px; width: 100px; background-color: #ff0;" id="mydiv"></div>
</body>
</html>

最佳答案

根据这个answer

IE 中的

onchange 仅在复选框失去焦点时触发。因此,如果您跳转到它,按空格键几次,然后跳出,您将只会得到一个 onchange 事件,但会有多个 onclick 事件。

您应该更改代码以改为使用 onclick 事件:

<input type="checkbox" onclick="Passport();" value="Passport">Passport</input>

关于javascript - Internet Explorer 不执行 onChange 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199675/

相关文章:

javascript - Jquery 无法读取 Contenteditable div,变量返回未定义

Apache Tomcat 服务器关闭但 web 应用程序仍在运行

css - 伪标签 "before"& "after",border-left 在 IE 中不起作用

javascript - 解析 html 字符串 Windows 8 javascript 应用程序

javascript - 在js中捕获一个referenceError

javascript - 如何按条件从对象中删除多余的属性?

internet-explorer - 即使我使用的是 .htc 文件,IE 中的边框半径也不起作用

javascript - IE9 日期对象处理

javascript - 从 Javascript、Ajax、IE : can responseBody be read from Javascript (not VB)? 访问二进制数据

javascript - FB.api 仅在第一次 AJAX 调用页面时加载