从 jQuery 的多选下拉列表中取消选择所有元素

发布于 2024-12-17 19:11:00 字数 498 浏览 0 评论 0原文

我有一个多选下拉列表,如下所示,我在其中选择了选项“测试 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

静谧幽蓝 2024-12-24 19:11:00
$("#edit-rec option:selected").removeAttr("selected");
$("#edit-rec option:selected").removeAttr("selected");
合久必婚 2024-12-24 19:11:00

尝试 -

$("#edit-rec > option").attr("selected",false);

演示 - http://jsfiddle.net/LhSBu/

Try -

$("#edit-rec > option").attr("selected",false);

Demo - http://jsfiddle.net/LhSBu/

旧瑾黎汐 2024-12-24 19:11:00

我发现取消选择多选下拉列表中所有选项的最简单方法是使用 .val([])

$("#select").val([]);

The easiest way that I found to unselect all options in a multi-select dropdown was using .val([]).

$("#select").val([]);
等待我真够勒 2024-12-24 19:11:00

单击单选按钮后,您可以使用它

$("#edit-rec  option").each(function(){

    this.selected=false;

});

On click of radio button you can use this

$("#edit-rec  option").each(function(){

    this.selected=false;

});
恋你朝朝暮暮 2024-12-24 19:11:00

它将从多选下拉列表中删除所有选中的选项:

$('#ddlTradeShow').multiselect("clearSelection");

It will remove all checked options from multiselect dropdownlist :

$('#ddlTradeShow').multiselect("clearSelection");

七色彩虹 2024-12-24 19:11:00
$("#edit-rec option:selected").removeAttr("selected");
$("#edit-rec option:selected").removeAttr("selected");
浮世清欢 2024-12-24 19:11:00

可以做类似 JS Fiddle 的事情来设置单选按钮的点击
http://jsfiddle.net/x5ck3/

$('#rdClear').click(

function() {
    $("#edit-rec option:selected").removeAttr("selected");
});

Can do something like this JS Fiddle for setting up the click on the radio button
http://jsfiddle.net/x5ck3/

$('#rdClear').click(

function() {
    $("#edit-rec option:selected").removeAttr("selected");
});
忆梦 2024-12-24 19:11:00
$("#butt").click(function () {
    $("#edit-rec > option").removeProp("selected");
});

新的 jQuery 版本是正确的

$("#butt").click(function () {
    $("#edit-rec > option").removeProp("selected");
});

that's correct with new jQuery version

甜心 2024-12-24 19:11:00

现在 API 直接提供了另一种可能性:

$('#edit-rec').multiSelect('deselect_all');

工作正常,在这里您可以找到有关它的更多选项:http://loudev.com /

There is now another possibility directly provided by the API :

$('#edit-rec').multiSelect('deselect_all');

Works fine, here you can find more options about it : http://loudev.com/

思念绕指尖 2024-12-24 19:11:00

您可以使用普通的 HTMLSelectElement DOM 界面,并且也无需迭代所有 元素。可以使用 selectedIndexvalue

$('#edit-rec')[0].selectedIndex = -1;

或者:

$('#edit-rec')[0].value = '';

无论 multiple 属性如何,它们都可以工作。有关各种方法的示例,请参阅此小提琴


PS:对于多个元素,您可以使用 jQuery 的 .each (但要小心从回调中返回非 false),或 DOM 集合的 .forEach (返回值无关紧要) :

$('.all-the-selects').each((_,s) => s.selectedIndex = -1);

或者:

$('.all-the-selects').get().forEach(s => s.selectedIndex = -1);

You can use the vanilla HTMLSelectElement DOM interface, and also there's no need to iterate over all of the <option> elements. Either selectedIndex or value can be used:

$('#edit-rec')[0].selectedIndex = -1;

Or:

$('#edit-rec')[0].value = '';

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):

$('.all-the-selects').each((_,s) => s.selectedIndex = -1);

Or:

$('.all-the-selects').get().forEach(s => s.selectedIndex = -1);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文