I have the following code, which works perfectly in 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;
}
}
But it just won't work in IE. I've tried to change the event to chkbx_send_demo.onclick and it still won't work.
Internet Explorer only fires the onchange event when the checkbox loses the focus (onblur).
also see here:
http://krijnhoetmer.nl/stuff/javascript/checkbox-onchange/
and here:
http://bytes.com/topic/javascript/answers/92116-onchange-checkbox
i faced the same issue on ie8, i used below trick to fix it. http://sleeplesscoding.blogspot.com/2010/01/fixing-ie-onchange-event-for-checkboxes.html
Are you sure onclick does not work? Did you check for javascript errors?
The following works in IE7 (don't have IE6 to test)
<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>
Note: This is only for onclick. OnChange works differently in IE, see GOsha's answer.
my JS code is now something like this:
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;
}
}
}
No javascript errors, but the code just isn't executed on IE and i really can't understand why.
精彩评论