2010-03-26 3 views
2

Internet Explorer에서 jquery를 사용하여 확인란을 선택했는지 확인하는 데 문제가 있습니다. 이것은 내가 사용하고 코드입니다 :jquery checked 확인란 IE 문제

if ($('#chkjq_1').attr('checked') == true) 

그것은 파이어 폭스 나 크롬에서 잘 작동하지만 브라우저가 재산을 이런 식으로 설정하기 때문에 인터넷 익스플로러 7, 조건이 항상 false입니다 :

<input id="chkjq_1" type="checkbox" CHECKED/> IE7 

그리고 올바른 방법은 다음 (파이어 폭스, 크롬) :

<input id="chkjq_1" type="checkbox" checked="checked"/> FF, Chrome, etc 

나는 인터넷 익스플로러 7이 문제를 방지하려면 어떻게해야합니까; 이 문제를 해결하기 위해 jquery에 일반적인 방법이 있습니까?

미리 감사드립니다.

+0

어떤 jQuery 버전을 사용하고 있습니까? – Samuel

+1

http://stackoverflow.com/questions/901712/check-checkbox-checked-property-using-jquery – Mayo

+0

입력 태그 생성에 대한 책임은 무엇입니까? 이 ASP.NET 서버 컨트롤 또는 이와 비슷한 있습니까? 태그가 잘못 렌더링되는 이유에 초점을 맞추고 해결할 수 있는지 확인하십시오. 그러면 jQuery가 작동해야합니다. –

답변

16

이 시도 : IE 같은 선택에 모두 대문자를 사용

if ($('#chkjq_1').is('[CHECKED]')) 

열 때 개발자를 렌더링 :

if ($('#chkjq_1').is(':checked')) 
{ 
    // more code 
} 
+0

그것은 나를 위해 또한 작동합니다. 내 'CHECKED'의 경우 IE9에서 작동하지 않고 'checked'로 변경하고 작동합니다. – Forhad

2

내가 지속적으로 일을 얻을 수있는 유일한 방법은이 같은 테스트했다 도구. 지금까지 말할 수있는 브라우저에서 작동합니다. .is (': checked')는 JQuery 1.7.1을 사용하여 나와 일치하지 않습니다. 여러 모드에서 IE 7 및 IE 8을 사용하여 테스트되었습니다. 다른 브라우저 (파이어 폭스, 사파리 테스트)는 신경 쓰지 않는다.

+0

checked 속성이 있는지 여부를 테스트합니다. 하지만 파이어 폭스에서 체크 박스를 해지하면 ('CHECKED') 여전히 true입니다. – rakensi

+0

당신이 필요하기 때문입니다 (': CHECKED'). –

1

IE에서 "변경"이벤트가 이상하게 발생합니다.

같이 해결 될 수있다 : - 확인하여 체크 박스의 상태를 확인 목표 함수) 2를 소성 할 필요가 목표 함수에 대한 입력 체크 박스 onclick 이벤트 바인딩) 1. "체크" 속성을 통해

if ($('#chkBox').attr("checked") == "checked"){ 
     // do something ----or .attr("checked", "checked"); ---for another checkbox 
}else{ 
     // do something else ----or .removeAttr("checked"); ---for another checkbox 
}