2010-02-20 3 views
0

친애하는 모든 이들에게 soemthing을 아주 간단하게하려고 노력하지만 구문을 고집하지는 않습니다.드롭 다운 목록을 사용하여 Jquery로 숨기기/표시하기

드롭 다운 목록이 있습니다. OPTION에는 두 가지 유형의 클래스가 있습니다. 'less_than_3'클래스의 OPTION을 선택하면 경고가 표시됩니다. 'greater'클래스의 OPTION에 다른 경고가 표시됩니다.

Heres는 내 시도 :.. (그래서 난 내 방식을 변경 내가 원래 OPTION 요소에 직접 클릭 핸들러를 부착하여 작업 버전을했지만, 이것은 단지 파이어 폭스에서 근무 유의하시기 바랍니다

$('#time_at_address').change(function() { 
    if ($(this).children('.less_than_3:selected')) { 
     alert('less than 3!'); 
    } 
    if ($(this).children('.greater_than_3:selected')) { 
     alert('greater than 3!'); 
     } 
    }); 

답변

0

다른 접근 방식을 사용하여 해결할 수있었습니다. 클래스 이름별로 필터링 할 때 val() isntead를 사용합니다. 따라서

..

$('#time_at_address').change(function() { 
      if ($(this).val() == 'less than 1') { 
        $('#address_less_than').show(); 
      } 
      else if ($(this).val() == '1 year') { 
        $('#address_less_than').show(); 
      } 
      else if ($(this).val() == '2 years') { 
        $('#address_less_than').show(); 
      } 
      else { 
       $('#address_less_than').hide(); 
      } 
    }); 

그러나 누군가가 나에게 알려 주시기 바랍니다 수 있습니다 ...이 체인에 그 첫 문을 함께합니다 (IF 두 ELSE의 IFS) 할 수 없습니다? (그들은 같은 결과를 반환하기 때문에).

두 verticle 파이프 문자를 사용해 보았지만 작동하지 않았습니다.

+0

myval = $ (this) .val(); if ((myval == '1보다 작음) || (myval =='1 년 ') || (myval =='2 년 ')) {$ ('주소 _ 없음 _than '). } else {$ ('address_less_than'). hide(); } –

+0

예, 있습니다! 그 표를 ​​주셔서 감사합니다. 그것은 내 코드를 조금 줄였습니다. 왜 변수가 || 일하다? – swisstony

0

내가 .. 확실하지 하늘의 배열은 그래서 당신이 사용할 수있는 확인하기 위해 JS에서 false로 평가 여부 :.

$(this).children('.less_than_3:selected').length > 0 

구문이 잘 보이는 내가 실제 문제가 경고 상자가 표시되는지 가정

+0

감사합니다. Felix. 하지만 .length> 0 '이 오류를 던지고 있습니다. 내가보기를 원하는 것은 사용자가 목록에서 특정 옵션을 선택하면 특정 DIV가 표시된다는 것입니다. (다른 옵션을 선택하면 다른 DIV가 표시됩니다.)> 나는 단순화하기 위해 경고를 사용했습니다. 메신저 사용하고 있는지 모르겠다 : selected (내가 방화범이 끌려 볼 때 속성이 거기에 없을 때) – swisstony

관련 문제