IE对于input checkbox onclick方法显示不支持此对象和方法的解决方案
网站注册页,协议结束后,通过input checkbox勾选,进行下一步,FF没问题,IE一直显示不支持此对象和方法。
网上查找大部分说函数名称与系统函数重名,而事实上不是。
<div name="pop_con" id="pop_con" style="width:1020px;height:230px;padding:20px;border:2px solid #A21f0d;overflow:scroll;margin-left:50px;"> {$article.content} </div> <div style="color:#333333;margin-left:50px;font-size:16px;"> <input type="checkbox" name="is_read" id="is_read" onclick="is_read()" /> 我接受上述协议内容 </div> <script type="text/javascript"> $("#is_read").click(function(){ if(parseInt(document.getElementById("pop_con").scrollTop)>"1730") { if(document.getElementsByName("is_read")[0].checked) { $(".step02").css({"backgroundColor":"#A21f0d","cursor":"pointer"}); } else { $(".step02").css({"backgroundColor":"#CCCCCC","cursor":"default"}); } } else{ alert("请将上述协议翻到底部阅读完毕才可勾选接受,进行下一步"); document.getElementsByName("is_read")[0].checked=false; } </script>
开始以为是checkbox不支持onclick方法,将方法赋予外层DIV,问题依旧。
考虑是is_read()函数未定义的原因,但JS代码在HTML后面。
思考是不是onclick=function(){fun();}与onclick=fun()有区别的原因,一改之下,问题迎刃而解。
需要注意的是,onclick=后不要带引号"",不然问题还是存在的。
<div name="pop_con" id="pop_con" style="width:1020px;height:230px;padding:20px;border:2px solid #A21f0d;overflow:scroll;margin-left:50px;"> {$article.content} </div> <div style="color:#333333;margin-left:50px;font-size:16px;"> <input type="checkbox" name="is_read" id="is_read" onclick=function(){is_read();} /> 我接受上述协议内容 </div> <script type="text/javascript"> $("#is_read").click(function(){ if(parseInt(document.getElementById("pop_con").scrollTop)>"1730") { if(document.getElementsByName("is_read")[0].checked) { $(".step02").css({"backgroundColor":"#A21f0d","cursor":"pointer"}); } else { $(".step02").css({"backgroundColor":"#CCCCCC","cursor":"default"}); } } else{ alert("请将上述协议翻到底部阅读完毕才可勾选接受,进行下一步"); document.getElementsByName("is_read")[0].checked=false; } </script>
你所不知道的JavaScript,神奇的世界!