У меня есть следующий код, который работает отлично в 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, и это все еще не будет работать.
Вы уверены, что 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, и я действительно не могу понять почему.
Internet Explorer запускает событие onchange только тогда, когда флажок теряет фокус (onblur).
также см. здесь:
http://krijnhoetmer.nl/stuff/javascript/checkbox-onchange/
и здесь:
http://bytes.com/topic/javascript/answers/92116-onchange- флажок