onchange / onclick in a checkbox doesn't work in IE

后端 未结 4 1956
忘掉有多难
忘掉有多难 2020-12-03 08:27

I have the following code, which works perfectly in Chrome/FF:

chkbx_send_demo.onchange = function(){
    if(sel_template.selectedIndex <= 0 && ch         


        
相关标签:
4条回答
  • 2020-12-03 09:21

    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

    0 讨论(0)
  • 2020-12-03 09:23

    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.

    0 讨论(0)
  • 2020-12-03 09:25

    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

    0 讨论(0)
  • 2020-12-03 09:28

    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.

    0 讨论(0)
提交回复
热议问题