加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

IE浏览器中checkbox刷新后自动初始化的问题

发布时间:2018-09-21 08:50:33 所属栏目:运营 来源:站长网
导读:在项目中有一个需求,要求页面中的checkbox在页面革新或退却时都要从头初始化,即处于未选中的状态,不生涯之前的状态。月朔看这个成果很简朴,一个checkbox,加一段剧本,把这个checkbox的checked属性设为false。 Copy to Clipboard 引用的内容:[www.ver

在项目中有一个需求,要求页面中的checkbox在页面革新或退却时都要从头初始化,即处于未选中的状态,不生涯之前的状态。月朔看这个成果很简朴,一个checkbox,加一段剧本,把这个checkbox的checked属性设为false。

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] <input type="checkbox" id="chk_UnInital" name="chk_UnInital" />
<script>document.getElementById("chk_UnInital").checked=false;</script>

这段代码在firefox等其余赏识器中都能实现这个需求,维独在IE中死活不可,每次把勾勾上,无论是革新照旧退却,这个勾都是勾上的。

莫非是在IE下这段代码没事变?

验证一下,在这段剧本前后各加一个alert,发此刻执行这checked=false之前和之后这个checkbox都是未选中的,当把告诫框确定后,这个勾反而呈现了!

这声名在后头的页面加载次序中,某个变乱又把这个checkbox设为true了,先试着在页面onload里再执行这段剧本

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] <script>

window.onload=function(){

  alert("before");

  document.getElementById("chk_UnInital").checked=false;

}

</script>

公然发此刻执行alert("before");时这个勾是选中的,这声名在onload变乱之前这个勾就被赏识器自动选上了,详细是什么缘故起因就涉及到IE内部的机制了。

将这个function注册在onload变乱里,到这里这个需求就实现了。

然而onload是在页面全部的元素都加载完后才会执行,在当地测试的时辰有一个哀求返回很慢,从而使onload变乱迟迟不能执行,这是我们不肯意看到的。

其后发明网站上另一处checkbox在页面革新时不会生涯之前的状态,颠末细心比拟之后发明这个input多了一个checked=""属性:

<input type="checkbox" id="chk_Inital" name="chk_Inital"  checked="" />

有了这个属性后,变乱不消放在onload里也能起浸染了

这是什么缘故起因呢?

接着做以下试验:

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] <input type="checkbox" id="chk_UnInital" name="chk_UnInital" />
<label for="chk_UnInital">This checkbox can't be Inital</label>
<br>
<input type="checkbox" id="chk_Inital" name="chk_Inital" checked=""/>
<label for="chk_Inital">This checkbox can be inital</label>
<br>
<script>
//window.onload=function(){
var chks=document.getElementsByTagName("input");
for(var i=0,l=chks.length;i<l;i++){
  alert(chks[i].id);
  chks[i].checked=false;
}
/

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读