2017-10-27 8 views
0

は、私がメインカテゴリから選択されているものに基づいてサブカテゴリーを選択する課題を抱えている主なカテゴリから選択にサブカテゴリベースの取得、サブカテゴリーは、まだすべてのオプションを表示します第2のカテゴリーである。 はここでここで jQueryの:私はメインのカテゴリから選択する場合

+0

ちょうどそれらが選択不可になります。彼らが表示されないことを意味しません。 – Taplar

+0

ええ、それはどうすれば解決できますか? –

+0

IEで選択オプションを非表示にすることはできません。このソリューションはあなたを助けるかもしれない - http://fiddle.jshell.net/FAkEK/25/?utm_source=website&utm_medium=embed&utm_campaign=FAkEK –

答えて

1

は、あなたがしたいだけのオプションへの選択を設定します。オプションを無効に

$(document).ready(function(){ 
 
    var $optgroups = $('#subcategory > optgroup'); 
 
    
 
    $("#category").on("change",function(){ 
 
    var selectedVal = this.value; 
 
    
 
    $('#subcategory').html($optgroups.filter('[label="'+selectedVal+'"]')); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="category"> 
 
<option value="Fashion">Fashion</option> 
 
<option value="Electronics">Electronics</option> 
 
</select> 
 
<select name="subcategory" id="subcategory"> 
 
<optgroup label="Fashion"> 
 
    <option value="Men's wear">Men's wear</option> 
 
    <option value="Women's wear">Women's wear</option> 
 
    </optgroup> 
 
    <optgroup id="B" label="Electronics"> 
 
    <option value="Television">Television</option> 
 
    <option value="Game Console">Game Console</option> 
 
    </optgroup> 
 
</select>

+0

それは働いたが、IE –

+0

奇妙では動作しませんでした、それは私があまりにもIE 11を使用してIE 11 – Taplar

+0

に私のために働きました –

1

$(document).ready(function(){ 
 
    $("#category").on("change",function(){ 
 
    var selectedVal=$("#category option:selected").val(); 
 
    $("#subcategory > optgroup").attr("disabled","disabled"); 
 
    $('#subcategory > optgroup[label="'+selectedVal+'"]').removeAttr("disabled"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="category"> 
 
    <option value="Fashion">Fashion</option> 
 
    <option value="Electronics">Electronics</option> 
 
</select> 
 
<select name="subcategory" id="subcategory"> 
 
    <optgroup label="Fashion"> 
 
    <option value="Men's wear">Men's wear</option> 
 
    <option value="Women's wear">Women's wear</option> 
 
    </optgroup> 
 
    <optgroup id="B" label="Electronics" disabled> 
 
    <option value="Television">Television</option> 
 
    <option value="Game Console">Game Console</option> 
 
    </optgroup> 
 
</select>
はあなたが解決

$(document).ready(function(){ 
 
    $("#category").on("change",function(){ 
 
    var selectedVal = $(this).find("option:selected").val(); 
 
    
 
    $('#subcategory > optgroup[label="'+selectedVal+'"]') 
 
     .show() 
 
     .siblings("optgroup") 
 
     .css("display","none"); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="category"> 
 
<option value="Fashion">Fashion</option> 
 
<option value="Electronics">Electronics</option> 
 
</select> 
 
<select name="subcategory" id="subcategory"> 
 
<optgroup label="Fashion"> 
 
    <option value="Men's wear">Men's wear</option> 
 
    <option value="Women's wear">Women's wear</option> 
 
    </optgroup> 
 
    <optgroup id="B" label="Electronics"> 
 
    <option value="Television">Television</option> 
 
    <option value="Game Console">Game Console</option> 
 
    </optgroup> 
 
</select>

これはあなたを助けることを願って行くのコードのスニペットです。

+0

おかげで、それは働きました。 ajaxを使用して未選択のサブカテゴリを非表示にすることはできますか? –

+0

@ N.francisはい、同じシナリオで 'jsfiddle'を作成することは可能です。 – Shiladitya

関連する問題