2013-07-11 119 views
0

我試圖根據之前選擇的順序更改選擇框。 我有第一個改變,但不是第三個。 如果有人可以幫助我做出第三件好事。根據以前的選擇篩選三個選擇框

http://jsfiddle.net/Ze5AA/21/

這裏是我用JS:

$("#CAT_Custom_496270").change(function() { 
    if($(this).data('options') == undefined){ 
     $(this).data('options',$('#CAT_Custom_495029 option').clone()); 
    } 

    var id = $(this).val(); 
    var options = $(this).data('options').filter('[value*=' + id + ']'); 
    $('#CAT_Custom_495029').html(options); 
}); 

$("#CAT_Custom_495029").change(function() { 
    if($(this).data('options') == undefined){ 
     $(this).data('options',$('#CAT_Custom_495038 option').clone()); 
    } 
    var id = $(this).val(); 
    var options = $(this).data('options').filter('[value*=' + id + ']'); 
    $('#CAT_Custom_495038').html(options); 
}); 

回答

1

包裝你value attribute過濾器的值加引號,因爲在該值的空間。

var options = $(this).data('options').filter('[value*="' + id + '"]'); 

Fiddle

+0

@Ohgodwhy是這樣。值中有一個空格。 – PSL

+0

非常感謝!這就是訣竅! – WildWing

+0

@WildWing歡迎您.. – PSL

0

你的價值觀不洽什麼你檢查由於空間。

你可以用它在引號,雖然我纔剛剛得到你所需要的值(前3個字符),以保持它的清潔

需要分割的檢查,我想補充一個分隔符,使其簡單。

//html example from menu 2 
    <option value="CSD: 0-45">0-45</option> 
     <option value="CSD: 46-50">46-50</option> //note the colon after CSD 

//html from menu 3 

<option value="CSD: $25.40/month /20 Year Pay">$25.40/month /20 Year Pay</option> 

<option value="CSD: $26.05/month /20 Year Pay">$26.05/month /20 Year Pay</option> 

<option value="CSD: 51 $27.50/month /20 Year Pay">$27.50/month /20 Year Pay</option> //note the color again 


//the java 

    var id = $(this).val().split(":"); //makes a 2 value array split at the colon 
    var options = $(this).data('options').filter('[value*=' + id[0] + ']'); //we want the first array value (before the colon) 
相關問題