从 jQuery 的多选下拉列表中取消选择所有元素
我有一个多选下拉列表,如下所示,我在其中选择了选项“测试 2”和“测试 3”。
<select id="edit-rec" class="form-select" multiple="multiple" name="rec[]">
<option value="6012">Test 1</option>
<option value="8436">Test 2</option>
<option value="4689">Test 3</option>
<option value="6784">Test 4</option>
</select>
我有一个名为“取消全选”的按钮。单击此按钮后,应取消选择所有选定的项目。在这种情况下,我之前选择的项目“测试 2”和“测试 3”现在应该被取消选择。
我怎样才能使用 jQuery 来完成这个任务?
I have a multi-select drop down as following, where I have selected the options "Test 2" and "Test 3".
<select id="edit-rec" class="form-select" multiple="multiple" name="rec[]">
<option value="6012">Test 1</option>
<option value="8436">Test 2</option>
<option value="4689">Test 3</option>
<option value="6784">Test 4</option>
</select>
I have a button called "Deselect All". When this button is clicked, all selected items should be deselected. In this case, the items I previously selected, "Test 2" and "Test 3", should now become deselected.
How can I accomplish this using jQuery?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
尝试 -
演示 - http://jsfiddle.net/LhSBu/
Try -
Demo - http://jsfiddle.net/LhSBu/
我发现取消选择多选下拉列表中所有选项的最简单方法是使用
.val([])
。The easiest way that I found to unselect all options in a multi-select dropdown was using
.val([])
.单击单选按钮后,您可以使用它
On click of radio button you can use this
它将从多选下拉列表中删除所有选中的选项:
It will remove all checked options from multiselect dropdownlist :
可以做类似 JS Fiddle 的事情来设置单选按钮的点击
http://jsfiddle.net/x5ck3/
Can do something like this JS Fiddle for setting up the click on the radio button
http://jsfiddle.net/x5ck3/
新的 jQuery 版本是正确的
that's correct with new jQuery version
现在 API 直接提供了另一种可能性:
工作正常,在这里您可以找到有关它的更多选项:http://loudev.com /
There is now another possibility directly provided by the API :
Works fine, here you can find more options about it : http://loudev.com/
您可以使用普通的 HTMLSelectElement DOM 界面,并且也无需迭代所有
元素。可以使用
selectedIndex
或value
:或者:
无论
multiple
属性如何,它们都可以工作。有关各种方法的示例,请参阅此小提琴。PS:对于多个元素,您可以使用 jQuery 的
.each
(但要小心从回调中返回非 false),或 DOM 集合的.forEach
(返回值无关紧要) :或者:
You can use the vanilla HTMLSelectElement DOM interface, and also there's no need to iterate over all of the
<option>
elements. EitherselectedIndex
orvalue
can be used:Or:
Those will both work regardless of the
multiple
attribute. See this fiddle for examples of various methods.PS: For multiple elements you can use jQuery's
.each
(but be careful to return non-false from the callback), or the DOM collection's.forEach
(return values don't matter):Or: