2011-01-27 7 views
1

jQuery에서 특정 선택 값을 기반으로 이벤트를 발생시키는 방법을 궁금합니다. 그래서, 예를 들어, 나는 이렇게 작은 선택 div가있다 :jquery로 특정 선택 값에 대한 이벤트 처리기

<select id="sweets"> 
    <option value ="Option1">Option 1</option> 
    <option value ="Option2">Option 2</option> 
    <option value ="Option3">Option 3</option> 
</select> 
<div id='showthis'>You have selected option 2</div> 

나는 다음과 같이하고 싶다;

경우 사용자 선택 옵션 2, 사용자가 다른 옵션을 선택하면

$('#showthis').show(); 

,

$('#showthis').hide(); 

내가 jQuery를 상당히 새로운 오전 그리고 난 변화를 수행하는 방법을 잘 모르겠어요 이벤트는 특정 선택 값을 기반으로합니다. 도움을 주시면 대단히 감사하겠습니다. 더 나은 아직

답변

1
$('#sweets').change(function(){ 
    var show = $(this).val() == 'Option2'; 
    $('#showthis').toggle(show); 
}); 
+0

이것은 정확히 내가 한 것입니다. 정말 고마워요. 나는 그것이 변화 (기능)을 포함한다는 것을 알았지 만, 내가 필요한 구체적인 가치를 얻는 방법을 확실히 알지 못했다. 다시 한번 감사드립니다. – dangermark

+0

@dangermark - 대단히 환영합니다! :) –

0
$('#sweets').change(function() { 
    if(this.selectedIndex === 1) { 
     $('#showthis').show(); 
    } else { 
     $('#showthis').hide(); 
    } 
}); 

나 :

$('#sweets').change(function() { 
    $('#showthis').toggle(this.selectedIndex === 1); 
}); 

selectedIndex 속성은 선택 옵션을 참조하는 매우 빠른 방법입니다. 당신이 스위치 인수로 부울을 전달할 수 toggle()(docs) 방법을 사용

true == showfalse == hide.

또는 값으로 그것을 할, 당신이 할 수 있습니다 :

$('#sweets').change(function() { 
    var val = this.options[ this.selectedIndex ].value; 
    $('#showthis').toggle(val === 'Option1'); 
}); 
1

는 당신이 봤어?

$('#sweets').change(function() { 
    if($(this).attr('value') == 'Option1') { 
     // do something 
    } else if($(this).attr('value') == 'Option2') { 
     // do something else 
    } // etc.. 
}