jQuery多选:计数未选择的选项不起作用
jquery multiselect: count for non selected options not working
>我正在尝试计数未在多选中选择。但似乎有一些问题。见 小提琴 了解更多信息..
问题:
- 尝试单击几次
Select all
和Deselect all
按钮,Select all
停止工作。 - 即使
Select all
在视觉上停止工作,它仍然在 dom 中选择/取消选择。您可以使用 firebug 进行检查。 - 如果是在 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>
.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);
});
属性和元素的属性之间存在差异。属性是初始状态,属性是当前状态。
您正在设置选项的属性,该属性仅在元素没有要开始的属性时才有效。之后,属性接管,设置属性不再影响当前状态。
如果要更改选择状态,则需要设置属性而不是属性:
$("#selectall").click(function (event) {
$("#languages option").prop('selected', true);
});
$("#deselectall").click(function (event) {
$("#languages option").prop('selected', false);
});
演示:http://jsfiddle.net/Guffa/fgfdb/3/
相关文章:
- CKeditor:更改对话框中的默认选择选项
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- AngularJs列表ng单击以选择选项转换
- 使用基于文本的 Jquery 选择选项
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 选择选项时如何显示警报
- 使用php动态更改选择选项
- 选择“选择选项”时显示文本.怎么做
- LEAFLET地图和带有选择选项的标记-ANGULARjs
- 使用js将动态内容添加到选择选项列表中
- 用于使用javascript循环选择选项
- AngularJS-选择选项并在函数中使用它
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- 如何使用jQuery隐藏与选择选项相关的选择选项列表
- 选择选项是添加或删除事件
- 使用jQuery向“选择选项”添加默认属性
- 构建HTML选择字段并使用JavaScript数组选择选项
- 带有动态选择选项的Firefox html5验证异常
- 只有当Angular从资源对象检索数据时,才选择选项元素