2011-05-14 4 views
8

나는 다음과 같은 HTML 코드가 있습니다jQuery로 여러 확인란을 선택하거나 해제하는 방법은 무엇입니까?

:

<input type="checkbox" value="1" /> 
<input type="checkbox" value="2" /> 
... 
<input type="checkbox" value="30" /> 

와 사용자가 이전 방문에서 상자의 일부를 확인하고 있으며, 그 값이 변수에 저장됩니다 (서버로부터 값을 가져옵니다)

myChoices = ["1", "5", "12"] 

그것은 myChoices에 값이있는 모든 확인란을 선택하기 쉬운, 그것은 수행 할 수 있습니다 :

$.(':checkbox').val(myChoices) 

하지만 확인 및 DISABL 모두 원하는 이 상자들. 나는 다음과 같은 해결책을 가지고 할 : 그것은 잘 작동

$(':checkbox').each(function() 
      {if ($.inArray(this.value, myChoices) != -1) 
       {this.checked=true; this.disabled=true;} 
}) 

,하지만 난 단지 너무 우아 발()와 유사한 간단한 해결책, 뭔가,이 있는지 궁금 해서요.

감사합니다.

+0

의 예를 들어 당신은 그것이 작동하는 말이며, 그것은 보이지 않는 : http://jsfiddle.net/6mfSX/ –

+4

서버에서 데이터를 가져오고 체크 박스가 비활성화 된 경우 왜 PHP로 서버에서 비활성화할까요? . 더 쉬울 수도 있지만 정확하게 사용하는 방법을 모른다. – user489872

+0

@ aleksv의 제안에 따르면, '과 같은 체크 박스와 체크 박스가 아닌가? –

답변

3

이처럼 할 수있는 : 여기

$(":checkbox").val(myChoices).filter(":checked").attr("disabled",true); 

는 jsfiddle http://jsfiddle.net/P4VhK/

+0

wohow! 배열을'.val'로 전달할 수 있다는 것을 결코 알지 못했습니다. 알아두면 좋을거야. 그 종류의 사용법에 대한 몇 가지 문서를 가르쳐 주시겠습니까? –

+0

@Shrikant, 솔직히 말해서, 나는 전에 그것을 해본 적이 없다 : D. 나는 Lejlek의 코드를 즉석으로 작성하고'disabled' 속성을 적용했습니다. 그래서 신용은 Lejlek이나 누구에게서 배웠던간에갑니다. –

+0

원더풀! 나는이 해결책을 좋아한다. 내 문제는 val()이 래핑 된 전체 집합을 반환했기 때문에 체크 된 상자 만 비활성화하는 방법을 알지 못했다는 것입니다. 고맙습니다! – Lejlek

관련 문제