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,神奇的世界!

 

posted @ 2017-06-16 13:51  年来未归客  阅读(729)  评论(0编辑  收藏  举报