admin管理员组文章数量:1386695
I'm having challenge selecting sub-category based on what is selected from the main category, When I selecting from the main category, the sub-category still displays all options in second category. Here's a snippet of the code
$(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=".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>
I'm having challenge selecting sub-category based on what is selected from the main category, When I selecting from the main category, the sub-category still displays all options in second category. Here's a snippet of the code
$(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./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>
Share
Improve this question
edited Oct 27, 2017 at 16:24
Shiladitya
12.2k17 gold badges28 silver badges42 bronze badges
asked Oct 27, 2017 at 16:04
N. francisN. francis
751 silver badge12 bronze badges
4
- Disabling options just makes them unselectable. Doesn't mean they don't show. – Taplar Commented Oct 27, 2017 at 16:06
- Yeah It doesn't, Please how can i resolve it? – N. francis Commented Oct 27, 2017 at 16:15
- Hiding of select options doesn't work in IE. This solution may help you - fiddle.jshell/FAkEK/25/… – Phani Kumar M Commented Oct 27, 2017 at 16:19
- @PhaniKumarM I just tried the fiddle, that's not what I want, Thanks – N. francis Commented Oct 27, 2017 at 16:27
2 Answers
Reset to default 4Set the select to just the options you want.
$(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./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>
Here you go with a solution
$(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./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>
Hope this will help you.
本文标签: javascriptjQuery Getting subcategory base on selection from main categoryStack Overflow
版权声明:本文标题:javascript - jQuery: Getting sub-category base on selection from main category - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744557175a2612546.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论