【发布时间】:2015-08-20 16:03:57
【问题描述】:
Object-“obj”将“optgroup”元素作为参数,将它们的选项作为参数的值。 But when options of both optgroups are selected it returns all option values in first optgroup and on console it saves the previous selected value unless new value for current optgroup is selected.
很快我需要一个对象来仅存储 optgroup 和所选选项的选项,一旦选择更改以使用新的所选数据恢复其所有数据。
var obj = {};
$('select[name=queue]').on('change', function(){
var options = $('option:selected', this); //the selected options
var optgroupIndex = options.closest('optgroup').index() //get the index
var optgroupId = options.parent()[0].id //get id
switch(optgroupIndex){
case 0:
case 1:
$('#demo').text(optgroupId +": " + $('select[name=queue]').val());
obj[optgroupId] = $('select[name=queue]').val()
console.log(obj)
break;
}
});
/*Additional*/
select::-webkit-scrollbar {display:none;}
select::-moz-scrollbar {display:none;}
select::-o-scrollbar {display:none;}
select::-google-ms-scrollbar {display:none;}
select::-khtml-scrollbar {display:none;}
select{height:150px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name='queue' multiple>
<optgroup label="Frist Queue" id="Frist Queue">
<option value="Person1">Person1</option>
<option value="Person2">Person2</option>
<option value="Person3">Person3</option>
</optgroup>
<optgroup label="Second Queue" id="Second Queue">
<option value="Person1">Person1</option>
<option value="Person2">Person2</option>
</optgroup>
</select>
<div id="demo"></div>
【问题讨论】:
标签: javascript jquery