【发布时间】:2017-12-25 22:36:32
【问题描述】:
我有一个从 JSON 动态生成的下拉列表。格式是这样的:
<optgroup id="US" label="United States class="optiongroup>
<option value="AS">American Samoa</option>
<option value="AL">Alabama</option>
...
<option value="VI">US Virgin Islands</option>
<option value="UT">Utah</option>
<optgroup>
<optgroup id="CA" label="Canada" class="optiongroup">
<option value="AB">Alberta</option>
<option value="BC">British Columbia</option>
...
<option value="QC">Quebec</option>
<option value="YT">Yukon Territory</option>
</optgroup>
我正在尝试确定是否选择了 optgroup 中的所有选项。从这里开始,如果选择了所有选项或仅选择了 optgroup 中的几个选项,我将生成一个字符串,因此如果选择了整个美国:
country = {[US]}
如果只选择了 TN 和 MS:
state = {country: US, statelist: [TN, MS]}
我的第一次尝试是这样的:
$(".optiongroup").each(function() {
var optgroup = $(this);
$(optgroup.children()).each(function () {
if ($(this).is(':selected')) {
statearray.push($(this).attr('value'));
state_flag = 1; //see if state exists
} else {
country_flag = 0; //entire country not selected
}
}
由于某种原因,这对我不起作用。
编辑: 如果我选择了两个状态,比如 TN 和 AL,它将返回 statelist:[Obj obj]
【问题讨论】:
标签: javascript jquery html option optgroup