0

以前に選択したものに基づいて、選択ボックスを順番に変更しようとしています。最初のものは変更できますが、3番目のものは変更できません。誰かが私がサードワンの作品を作るのを手伝ってくれるなら、それは素晴らしいことです.

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);
});
4

2 に答える 2

1

value attribute値にスペースがあるため、フィルターの値を引用符で囲みます。

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

フィドル

于 2013-07-11T20:18:06.153 に答える
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)
于 2013-07-11T20:43:10.373 に答える