[英]onchange / onclick in a checkbox doesn't work in IE
我有以下代码,它在Chrome / FF中完美运行:
chkbx_send_demo.onchange = function(){
if(sel_template.selectedIndex <= 0 && chkbx_send_demo.checked == true){
alert("Choose a Template");
sel_template.selectedIndex = 1;
}
if(chkbx_send_demo.checked == false){
sel_template.selectedIndex = 0;
}
}
但它只是在IE中不起作用。 我试图将事件更改为chkbx_send_demo.onclick,它仍然无法正常工作。
当复选框失去焦点(onblur)时,Internet Explorer仅触发onchange事件。 另见:
http://krijnhoetmer.nl/stuff/javascript/checkbox-onchange/
和这里:
http://bytes.com/topic/javascript/answers/92116-onchange-checkbox
我在ie8上遇到了同样的问题,我用下面的技巧来修复它。 http://sleeplesscoding.blogspot.com/2010/01/fixing-ie-onchange-event-for-checkboxes.html
你确定onclick 不起作用吗? 你检查过javascript错误了吗?
以下在IE7中工作(没有IE6进行测试)
<html>
<head>
<script>
function text()
{
alert(document.getElementById("cbxTest").checked);
}
</script>
</head>
<body>
<input type="checkbox" name="cbxTest" id="cbxTest" onclick="text()"/>
<label for="cbxTest"> Test </label>
</body>
</html>
注意:这仅适用于onclick。 OnChange在IE中的工作方式不同,请参阅GOsha的回答。
我的JS代码现在是这样的:
if(navigator.appName == "Microsoft Internet Explorer"){
alert("IE");
chkbx_send_demo.onclick = function(){
alert("HI");
if(sel_template.selectedIndex <= 0 && chkbx_send_demo.checked == true){
alert("Choose a Template");
sel_template.selectedIndex = 1;
}
if(chkbx_send_demo.checked == false){
alert("HI");
sel_template.selectedIndex = 0;
}
alert("HI");
}
}
else
{
chkbx_send_demo.onchange = function(){
if(sel_template.selectedIndex <= 0 && chkbx_send_demo.checked == true){
alert("Choose a Template");
sel_template.selectedIndex = 1;
}
if(chkbx_send_demo.checked == false){
sel_template.selectedIndex = 0;
}
}
}
没有javascript错误,但代码只是没有在IE上执行,我真的不明白为什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.