我正在尝试计算未在多选中选择的数量。但似乎有些问题。有关更多信息,请参见小提琴 ..
问题:
- 尝试单击
Select all
和Deselect all
按钮几次,然后Select all
停止工作。 - 即使
Select all
在视觉上停止工作,它仍然在 dom 中选择/取消选择。您可以使用 firebug 来检查它。 - 如果它是在 dom 中选择/取消选择,为什么它会为取消选择的元素提供不正确的计数?
笔记:
请按照下面小提琴中的确切顺序查看我的问题。然后单击Select all
然后Deselect all
再单击Select all
。此时 DOM/Firebug 显示选项已被选中。但是当我按下计数时,我得到的结果 4 为 0。
目标:我不在乎它是否在视觉上选择,我的主要目的是为未选择的选项获得正确的计数,因为萤火虫显示“选项”正在被选择和取消选择。
JSFIDDLE:http: //jsfiddle.net/bababalcksheep/fgfdb/
HTML:
<button id="countdeselected">Count deselected</button>
<button id="selectall">select All</button>
<button id="deselectall">Deselect All</button>
<select name="languages[]" multiple="multiple" class="multiselect" id="languages" style=" ">
<option value="ALB">Albania</option>
<option value="DZA">Algeria</option>
<option value="alfa">Custom1</option>
<option value="beta">Custom2</option>
</select>
<ul id="status"></ul>
JS:
$("#countdeselected").click(function (event) {
var dd = $("#languages option:not(:selected)").length
$('#status').append($('<li>').text(dd));
});
$("#selectall").click(function (event) {
$("#languages option").attr('selected', 'selected');
});
$("#deselectall").click(function (event) {
$("#languages option").attr('selected', null);
});