dja*_*ngo 1 html javascript jquery
我试图在多选中未选中.但似乎有一些问题.请参阅小提琴了解更多..
问题:
Select all和Deselect all按钮几次,并Select all停止工作.Select all停止在视觉上工作,它仍然在dom中选择/取消选择.你可以使用萤火虫来检查它.注意:
请在下面的小提琴下按照这个确切的顺序查看我的问题.点击Select all,然后Deselect all ,然后再次Select all.此时DOM/Firebug显示选项被选中.但是当我按下计数时,我得到结果4的实例0.
目标:我不在乎它是否在视觉上进行选择,我的主要目的是获得正确计数未选择的选项,因为firebug显示"选项"正在被选中和取消选择.
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>
Run Code Online (Sandbox Code Playgroud)
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);
});
Run Code Online (Sandbox Code Playgroud)
属性和元素属性之间存在差异.属性是初始状态,属性是当前状态.
您正在设置选项的属性,该属性仅在元素没有要开始的属性时才有效.之后,属性接管并设置属性不再对当前状态产生影响.
如果要更改选择状态,则需要设置属性而不是属性:
$("#selectall").click(function (event) {
$("#languages option").prop('selected', true);
});
$("#deselectall").click(function (event) {
$("#languages option").prop('selected', false);
});
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/Guffa/fgfdb/3/