2010-02-01 5 views
8

오류가 표시됩니다. 일부 사용자의 하위 집합에서 복제 할 수 없습니다. 코드는 다음과 같습니다.jQuery : IE 전용, 입력 : 선택한 항목이 선택되어 있어도 0이 반환됩니다.

var selected = $('#mytable input:checked'); 
if (selected.length == 0) { 
    $('body').trigger('notice', 'Please select some items first'); 
    return; 
} 

사용자가 여러 체크 박스를 선택하더라도 "notice"가 실행됩니다. 그것이 선택되어서는 안된다. 이 업데이트 때 선택기가 작동


[업데이트] :

var selected = $('input[class="selection"]:checked'); 

그것은 선택기에서 ID를 포함 보인다는 IE에서 일을 나누기.


이 코드는 사용자의 대부분을 위해 노력하고 있습니다 그리고 우리는 문제를 복제 할 수 있지만, 문제를보고 사용자가 일관성의 모든 시간을 발생합니다.

IE에는 격리되어있는 것처럼 보입니다 (확신 할 수는 없지만). 우리는 jQuery 1.3.2 (Google CDN에서)를 사용하고 있습니다.

아이디어가 있으십니까?

답변

2

주변 코드/이벤트 처리기를 붙여 넣는 것이 좋습니다. 출발점을 위해, 나는 첫 번째 줄에 :checkbox 선택기를 사용하는 것이 좋습니다 것입니다 :

$('#mytable input:checkbox:checked') 

설명서는 말한다 :

$(':checkbox')$('*:checkbox')에 해당하므로 $('input:checkbox') 대신 을 사용해야합니다.

물론 차이는 없습니다. :checkbox$('[type=checkbox]') 동일합니다, 그래서 IE가 checked 상태에 대한 모든 입력 요소를 테스트하고 당신의 선택의 input:checked 부분에 질식되어있을 수 있습니다.

1

필자는 내 인생에서 IE가 다른 이벤트 처리기에 의해 프로그래밍 방식으로 '확인'된 상자를 인식하지 못하게하는 유사한 문제가 발생했습니다. (8 다양한 맛) 명백하게

$("input[name='iptName'][CHECKED]").size() 

, IE 인 경우에 대해 민감했다 :

은에 의존. ': 확인 됨', ': CHECKED'및 '[checked]'는 표시되지 않았습니다.

다른 사람이이 프로그램에 참여 했습니까?

관련 문제