2011-07-01 35 views
0

我有兩個選擇框,一個包含國家名稱,另一個包含所有國家的所有州名。使用jquery從父級過濾子選擇框的值

<select id="parent"> 
<option value="Country1">Country1</option> 
<option value="Country2">Country2</option> 
<option value="Country3">Country3</option> 
</select> 

<select id="child"> 
<option value="Country1 state1">Country1 state1</option> 
<option value="Country1 state2">Country1 state2</option> 
<option value="Country2 state1">Country2 state1</option> 
<option value="Country2 state2">Country2 state2</option> 
<option value="Country3 state1">Country3 state1</option> 
</select> 

然後,如果我從父選擇框中選擇國家1,國家選擇框也需要獨顯的COUNTRY1所有狀態並拆除所有其他國家。

我需要通過部分匹配找到孩子的價值觀和與父值驗證..

$(document).ready(function(){ 
$('#parent').change(function(){ 
    var filter = $(this).val(); 
    $('option').each(function(){ 
    if ($('option:contains("' + var1 '")') == filter) {  
    $(this).show(); 
    } else { 
    $(this).hide(); 
    } 
    var var1= $('#child').val(filter); 
    }) 
}) 
}) 

請幫我在這。

+0

檢查Chained的來源選擇jQuery插件。它使用類名做了一些非常類似的事情。你應該能夠從那裏適應。 http://www.appelsiini.net/projects/chained –

回答

0
$("#parent").change(function(){ 
    var filter = $(this).val(); 
    $("#a").append('a'); 
    $('select#child option').each(function(){ 
     $("#a").append('a'); 
     if ($(this).val().substring(0,8) == filter) {  
      $(this).show(); 
     } 
     else { 
      $(this).hide(); 
     } 
    }); 

    var var1= $('#child').val(filter); 
}) 

http://jsfiddle.net/yZm7A/3/

儘管如人們看到仍然存在所選擇的值中的第二個下拉不改變

+0

請注意'$(this).val()'永遠不會是'== filter',而是以'filter'開頭。所以你應該檢查'$(this).val()。substring(0,8)== filter' – ub1k

+0

它不適用於IE瀏覽器? – user811589

0

嘗試IE

else { 
    $(this).hide(); 
} 

改變它

else { 
    $(this).remove(); 
} 
問題