根据以前的选择过滤三个选择框

时间:2013-07-11 20:09:53

标签: javascript jquery dropdownbox

我正在尝试根据之前选择的内容按顺序更改选择框。 我让它为第一个改变而不是第三个改变。 如果有人可以帮我做第三件工作,那就太好了。

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

2 个答案:

答案 0 :(得分:1)

value attribute过滤器的值换成引号,因为值中有空格。

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

<强> Fiddle

答案 1 :(得分: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)