2010-04-21 5 views
1

내 webform에 드롭 다운 목록 2 개가 있고 jquery를 사용하여 첫 번째 드롭 다운 선택에 따라 두 번째 드롭 다운 요소를 필터링/재설정하려고합니다.jquery 재설정 조건부 필터

$(document).ready(function() 
{ 
     $('#dropdown1').change(function(e) 
     { 
      switch ($(this).val()) 
      { 
       case "4": 
       //this removal works 
       $('#dropdown2').filter(function() 
        { 
         return ($(this).val() == 16); 

        }).remove(); 
        break; 


       .................  
       default: 
       //how would I restore filter here? 

      } 

     } 

}); 

제거 부분이 작동하므로이 문제없이 항목을 필터링,하지만 뭔가 다른 드롭 다운 1에서 선택된 경우 내가 .hide().show() 대신 .remove()를 사용하려고했던 어려움 드롭 다운 2 필터를 복원을 가지고 있지만 적어도 IE6에서는 작동하지 않는 것 같습니다. 당신이 원래 상태로 dropdown2의 값을 재설정 할 때마다 다음

var drp2values = $('#dropdown2').html(); 

이 수행 :

$('#dropdown2').html(drp2values); 
을 같은 dropdown2에있는 값의 사본을 준비하여 문서의 시작 부분에
+0

페이지가로드 될 때 원래 값을 배열로 읽을 수 있습니까? 그런 다음 모든 값을 재설정하십시오. –

+0

드롭 다운 2의 모든 값을 배열로 읽어들이시겠습니까? – Victor

+0

일반적인 방법으로 어떻게 할 수 있습니까? – Victor

답변

1

<option value="11">11</option> 
<option value="12">12</option> 
<option value="13">13</option> 
<option value="16">16</option> 

단지 시도 :

var에의 실제 값이 될 것 같은 뭔가 그것은 :

이 코드는 작동이 HTML

<BODY> 
    <select id='dropdown1'> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
    </select> 

    <select id='dropdown2'> 
     <option value="11">11</option> 
     <option value="12">12</option> 
     <option value="13">13</option> 
     <option value="16">16</option> 
    </select> 
</BODY> 

당신이 제거, 그것은 값 (16) 개별 옵션을 제거 didnt는 일 밝혔다 위치를 게시 한 원본 코드와

$(document).ready(function() 
{ 
var drp2values = $('#dropdown2').html(); 

     $('#dropdown1').change(function(e) 
     { 
      switch ($(this).val()) 
      { 
       case "4": 
       //this removal works... now ;) 
       $('#dropdown2').find('option').filter(function() 
        { 
        alert('in4 filt' + drp2values + $(this).val()); 
         return ($(this).val() == 16); 

        }).remove(); 
        break; 
       default: 
       //how would I restore filter here? 
       $('#dropdown2').html(drp2values); 
      } 

     }); 

}); 

, 그것은 필터링하기 전에 옵션을 가져 오지 않았으므로 전체 드롭 다운을 제거했습니다. 드롭 다운을 제거하고있었습니다.

희망이 있습니다.

+0

+1 코드 설명이 간결하고 간결하며 ... SO! –

+0

답장을 보내 주셔서 감사합니다. 그것은 단지 내 오타였습니다. 나는 일반적으로 드롭 다운을 삭제하지 않습니다 :-) – Victor