2011-08-22 2 views
2

선택이 너무 커서 그래서 필터으로 지정하고 싶습니다. 나는 에 3 개의 체크 박스를 가지고 있습니다. 값을 기준으로 몇 가지 옵션을 켜고 끄십시오. jsfiddle클릭시 옵션을 숨기거나 표시하는 방법은 무엇입니까?

  • 에 샘플에서와 마찬가지로 옵션의 값은 d 숨기기를 포함하는 경우 - 내 예제에서 우리는 체크되지 않은 쇼가 값을 경우이 옵션
  • 을 숨길 필요가

수 jQuery에서 할 수 있습니다. 어떤 생각?

필터링을 3 확인란이있을거야 : 그것은 파이어 폭스

주 (크롬, 사파리 같은 좋은 너무하지만 필요합니다)에서 작동하는 경우

그것은 나를 위해 충분 w, dh을 포함하는 값 따라서 숨기기/표시는 모두를 위해 작동해야합니다.


@ShankarSangoli 대답을 기반으로 한 jsfiddle의 최종 코드. option[value$=d]는 "D"로 끝나는 값으로 option의 발견

$('input:checkbox').click(function() { 
    if (this.checked) { 
     $('select option[value$=d]').hide(); 
    } else { 
     $('select option[value$=d]').show(); 
    } 
}); 

선택기 :

답변

4

모든 브라우저에서 선택 목록에 option을 숨기는 기능이 지원되지 않습니다. jQuery도 크로스 브라우저 지원을 위해 아무 것도 할 수 없습니다. 하지만 disabled 속성을 사용하여 옵션을 사용 중지 할 수 있습니다.

다음은 체크 박스 클릭시 옵션이 비활성화 된 작동 데모입니다. 여기

http://jsfiddle.net/ggWJu/8/

추가/확인란을 클릭에 선택 상자에서 옵션을 제거하는 작업 데모입니다. 이 옵션은 제거 된 동일한 위치에 옵션을 추가합니다. 여기

http://jsfiddle.net/ggWJu/9/

추가/옵션 값이 체크 박스 값을 포함하는 경우 모든 옵션을 제거 바이올린입니다. 당신이 필요로하는 무엇

http://jsfiddle.net/ggWJu/10/

+0

옵션을 제거하거나 숨길 필요가 있습니다. 그들을 '무력화'하게 만들면 도움이되지 않습니다. – Radek

+0

@Radek - 편집 된 답변을 확인하십시오. – ShankarSangoli

+0

'd'를 포함하는 모든 값에 대해 작동하지 않습니다. 3D 용. '3d'가 체크 박스 값에 있기 때문에 그렇게 생각됩니다. – Radek

4

이것은 당신의 예 (jsFiddle)와 함께 작동합니다.

또한 selectinput 요소에 고유 한 ID를 부여하여 jQuery로 제어하려는 요소로 지정할 수 있습니다. 이는 페이지의 다른 요소에 영향을 미칠 수 있습니다.

+0

헴 나는 모든 브라우저가'select'리스트 엘리먼트를 숨기는 것을 지원하지는 않을 것이라고 확신한다. –

+0

@floatless : 아마도 사실 일 겁니다. 포스터는 표시 여부를 전환하는 대신 항목을 추가/제거해야 할 수 있습니다. –

+0

Firefox에서 작동합니다. Chrome & Safari에는 없습니다. – Radek

2

this example 무엇을 찾고 계십니까? change 이벤트 및 contains 선택기 설명서를 참조하십시오.

+0

Firefox에서 작동합니다. Chrome & Safari에는 없습니다. – Radek

+0

나는 (업데이트 된) (http://jsfiddle.net/8dMZa/8/) 바이올린. 이제 조금 (또는 조금은 :) 못 생겼지 만 FF, Chrome 및 Safari에서 작동합니다. – sigurd

+0

좋아 보인다. 귀하의 코드는 제거 된 옵션의 인덱스를 기억합니까? 이전에 옵션을 정렬하지 않으면 어떻게됩니까? – Radek

2

, 당신의 JS 부분에 배열입니다.그 배열에서 배열을 반복하여 선택 요소를 즉석에서 작성할 수 있으며, 즉시 편집 할 수 있습니다.

관련 문제