Heim Web-Frontend js-Tutorial IE中checkbox在刷新后初始化的问题_表单特效

IE中checkbox在刷新后初始化的问题_表单特效

May 16, 2016 pm 06:36 PM
ie

初一看这个功能很简单,一个checkbox,加一段脚本,把这个checkbox的checked属性设为false。

复制代码 代码如下:


<script>document.getElementById("chk_UnInital").checked=false;</script>

这段代码在firefox等其它浏览器中都能实现这个需求,维独在IE中死活不行,每次把勾勾上,无论是刷新还是后退,这个勾都是勾上的。
难道是在IE下这段代码没工作?
验证一下,在这段脚本前后各加一个alert,发现在执行这checked=false之前和之后这个checkbox都是未选中的,当把警告框确定后,这个勾反而出现了!
这说明在后面的页面加载顺序中,某个事件又把这个checkbox设为true了,先试着在页面onload里再执行这段脚本
复制代码 代码如下:

<script> <BR>window.onload=function(){ <BR>  alert("before"); <BR>  document.getElementById("chk_UnInital").checked=false; <BR>} <BR></script>

果然发现在执行alert("before");时这个勾是选中的,这说明在onload事件之前这个勾就被浏览器自动选上了,具体是什么原因就涉及到IE内部的机制了。
将这个function注册在onload事件里,到这里这个需求就实现了。
然而onload是在页面所有的元素都加载完后才会执行,在本地测试的时候有一个请求返回很慢,从而使onload事件迟迟不能执行,这是我们不愿意看到的。
后来发现网站上另一处checkbox在页面刷新时不会保存之前的状态,经过仔细对比之后发现这个input多了一个checked=""属性:

有了这个属性后,事件不用放在onload里也能起作用了
这是什么原因呢?
接着做以下试验:
复制代码 代码如下:









<script> <BR>//window.onload=function(){ <BR>var chks=document.getElementsByTagName("input"); <BR>for(var i=0,l=chks.length;i<l;i++){ <BR>  alert(chks[i].id); <BR>  chks[i].checked=false; <BR>} <BR>//} <BR></script>

为了便于叙述,我们这里将上面这段脚本的执行时间称为t1,window.onload的执行时间称为t3,这之间的执行时间称为t2
通过加入alert后,对比发现:
      chk_UnInital  chk_Inital
脚本放在script块中执行:
t1之前    未选中      选中
t1之后    选中      未选中
下面是放在onload中执行:
t3之前    选中       选中
t3之后    未选中      未选中
发现加checked=""后在t1之前即为选中状态,然后被t1置为unchecked。
总结:
方案一:在onload事件里处理
方案二:加上checked属性

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Internet Explorer öffnet Edge: So stoppen Sie die MS Edge-Umleitung Internet Explorer öffnet Edge: So stoppen Sie die MS Edge-Umleitung Apr 14, 2023 pm 06:13 PM

Internet Explorer öffnet Edge: So stoppen Sie die MS Edge-Umleitung

Was soll ich tun, wenn Win11 den IE11-Browser nicht verwenden kann? (win11 kann den IE-Browser nicht verwenden) Was soll ich tun, wenn Win11 den IE11-Browser nicht verwenden kann? (win11 kann den IE-Browser nicht verwenden) Feb 10, 2024 am 10:30 AM

Was soll ich tun, wenn Win11 den IE11-Browser nicht verwenden kann? (win11 kann den IE-Browser nicht verwenden)

So brechen Sie den automatischen Sprung zu Edge ab, wenn Sie den IE in Win10_Solution öffnen, um zum automatischen Sprung der IE-Browserseite zu gelangen So brechen Sie den automatischen Sprung zu Edge ab, wenn Sie den IE in Win10_Solution öffnen, um zum automatischen Sprung der IE-Browserseite zu gelangen Mar 20, 2024 pm 09:21 PM

So brechen Sie den automatischen Sprung zu Edge ab, wenn Sie den IE in Win10_Solution öffnen, um zum automatischen Sprung der IE-Browserseite zu gelangen

Das Ende einer Ära: Internet Explorer 11 ist im Ruhestand, hier ist, was Sie wissen müssen Das Ende einer Ära: Internet Explorer 11 ist im Ruhestand, hier ist, was Sie wissen müssen Apr 20, 2023 pm 06:52 PM

Das Ende einer Ära: Internet Explorer 11 ist im Ruhestand, hier ist, was Sie wissen müssen

So lösen Sie das Problem, dass die IE-Verknüpfung nicht gelöscht werden kann So lösen Sie das Problem, dass die IE-Verknüpfung nicht gelöscht werden kann Jan 29, 2024 pm 04:48 PM

So lösen Sie das Problem, dass die IE-Verknüpfung nicht gelöscht werden kann

So aktivieren Sie die IE-Beschleunigungsfunktion So aktivieren Sie die IE-Beschleunigungsfunktion Jan 30, 2024 am 08:48 AM

So aktivieren Sie die IE-Beschleunigungsfunktion

Der IE-Browser von Win10 Home Edition lässt sich plötzlich nicht mehr öffnen Der IE-Browser von Win10 Home Edition lässt sich plötzlich nicht mehr öffnen Jan 18, 2024 pm 02:57 PM

Der IE-Browser von Win10 Home Edition lässt sich plötzlich nicht mehr öffnen

So gehen Sie mit der gesperrten Homepage des Windows 10-System-IE um So gehen Sie mit der gesperrten Homepage des Windows 10-System-IE um Mar 28, 2024 pm 01:10 PM

So gehen Sie mit der gesperrten Homepage des Windows 10-System-IE um

See all articles