2012-09-13 3 views
0

선택 상자 자체를 클릭하지 않고 선택 상자에서 값이 변경된 것을 어떻게 확인할 수 있습니까? 다음과 같이Jquery 선택 상자 값에 변경 사항이 있는지 확인하십시오.

내 코드는 다음과 같습니다

JQUERY

  $("select").each(function() { 
       $(this).change(function() { 
        if ($(this).val() === "-Select-"){ 
         this.parent().addClass("highlightSelect"); 
         this.parent().sibling().show(); 
        } else{ 
         this.parent().removeClass("highlightSelect"); 
         this.parent().sibling().hide(); 
        } 
       }); 
      }); 

HTML

<div id="wwctrl_add_savedAddressId" class="wwctrl styled-select"> 
<select id="add_savedAddressId" class="storedPaymentInput_size4 required savedAddress checkDropdown valid" onchange="changeSavedAddressType();generateSavedAddressAdd();" name="summaryData.usedAddress"> 
<option value="-Select-">-Select-</option> 
<option value="O">Enter New Address</option> 
<option value="3041">Home - 116 Parrot...</option> 
<option value="22268">Other - rwara, aw...</option> 
<option value="21372">Other - 1040..</option> 
</select> 
</div> 
<div class="error" for="add_savedAddressId" generated="true" style="display: none;"> Select item</div> 

참고 : 나는 위의 선택 상자의 값의 변화에 ​​영향을 미치는 다른 버튼이

+0

jsfiddle – Asciiom

답변

1

먼저 - 문제의 코드가 작동하지 않습니다. 그것은 다음과 같이해야합니다 : $(this) :

   $("select").change(function() { 
        if ($(this).val() === "-Select-"){ 
         $(this).parent().addClass("highlightSelect"); 
         $(this).parent().siblings().show(); 
        } else{ 
         $(this).parent().removeClass("highlightSelect"); 
         $(this).parent().siblings().hide(); 
        } 
       }); 

부모 JQuery와 객체 기능과 DOM되지 객체 기능과 this 같이 JQ 객체로 전환 할 수있는 DOM 객체입니다. 또한, thers는 jquery의 sibling 메소드가 아니지만, siblings이 있습니다. 당신이 이전/다음 형제을하려는 경우 또는, 당신은 요소

나는 각 제거의 모든 형제 자매를 반환하지만 실제로는 필요하지 않은 .next()/.prev() 대신 siblings로 사용할 수 있습니다. 그것을 사용할 수는 있지만 거의 모든 jquery 메서드는 메서드 집합을 사용하여 작업을 수행하므로 $("select")은 페이지에서 소수의 항목을 찾을 수 있으며 $("select").change(...)$("select")에있는 모든 선택 항목에 onchanged 처리기를 바인딩합니다.

귀하의 질문에 답하십시오. 내가 선택한 값을 다각적으로 변경 한 후에 변경 핸들러를 호출하고 싶습니다. 당신은 이것을 다음과 같이 할 수 있습니다 : $("select").change() 그러나이 방법을 사용하면 모든 선택에서 change 이벤트를 호출 할 수 있습니다. 이렇게하면 $("#add_savedAddressId").change()과 같이 할 수 있습니다. 두 번째 경우에는 select with only id에 대해서만 변경 짝수 핸들러를 호출합니다. add_savedAddressId

관련 문제