>  기사  >  웹 프론트엔드  >  IE_Form 특수 효과에서 새로 고친 후 확인란 초기화 문제

IE_Form 특수 효과에서 새로 고친 후 확인란 초기화 문제

WBOY
WBOY원래의
2016-05-16 18:36:231071검색

언뜻 보기에 이 함수는 매우 간단합니다. 체크박스에 스크립트를 추가하고 이 체크박스의 selected 속성을 false로 설정합니다.

코드 복사 코드는 다음과 같습니다.


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

이 코드는 Firefox 및 기타에서 이 요구 사항은 브라우저에서 실현될 수 있습니다. Weidu는 검사를 확인할 때마다 새로 고침을 하든 돌아가든 검사를 항상 확인합니다.
이 코드는 IE에서 작동하지 않나요?
확인하려면 이 스크립트 전후에 경고를 추가하고 selected=false 실행 전후에 확인란이 선택 해제되어 있는 것을 확인하세요. 경고 상자가 확인되면 대신 확인란이 나타납니다!
이는 후속 페이지 로딩 시퀀스에서 이벤트가 이 확인란을 다시 true로 설정한다는 것을 의미합니다. 먼저 페이지 온로드에서 이 스크립트를 실행해 보세요.
코드 복사 코드는 다음과 같습니다.

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

예상대로 Alert("before");를 실행할 때 발견했습니다. 확인 표시가 선택되었습니다. 이는 onload 이벤트 전에 브라우저에서 확인 표시가 자동으로 선택되었음을 의미합니다. 구체적인 이유는 IE의 내부 메커니즘과 관련이 있습니다.
onload 이벤트에 이 기능을 등록하면 이 요구 사항이 충족됩니다.
그러나 페이지의 모든 요소가 로드될 때까지 onload는 실행되지 않습니다. 로컬 테스트 중에 요청이 매우 느리게 반환되어 onload 이벤트가 지연되는 것을 보고 싶지 않습니다.
나중에 페이지를 새로 고칠 때 웹사이트의 다른 확인란이 이전 상태를 저장하지 않는다는 사실을 발견했습니다. 주의 깊게 비교한 결과 이 ​​입력에 추가 selected="" 속성이 있음을 발견했습니다. "checkbox" id ="chk_Inital" name="chk_Inital" check="" />
이 속성을 사용하면 onload에 넣지 않고도 이벤트가 작동할 수 있습니다.
이유는 무엇인가요?
그런 다음 다음 실험을 수행합니다.


코드를 복사합니다. 코드는 다음과 같습니다.
;br>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.