【问题标题】:Deselecting all elements from a multi-select dropdown in jQuery从jQuery中的多选下拉列表中取消选择所有元素
【发布时间】:2012-01-05 11:26:57
【问题描述】:

我有一个多选下拉菜单,如下所示,其中我选择了“测试 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 来完成这项工作?

【问题讨论】:

    标签: jquery multi-select


    【解决方案1】:
    $("#edit-rec option:selected").removeAttr("selected");
    

    【讨论】:

    • 更好用$("#edit-rec option:selected").prop("selected", false);
    【解决方案2】:

    试试 -

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

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

    【讨论】:

    • 您的代码看起来很不错。但是你能解释一下语法 $("#edit-rec > option")
    • $("#edit-rec &gt; option") 应该选择任何作为#edit-rec 元素的直接子元素的option 元素。见 - api.jquery.com/child-selector
    • 我建议删除 &gt; 部分。在这种情况下它没有意义,并且会导致使用 &lt;optgroup&gt; 作为 &lt;option&gt; 的父级的意外行为。
    【解决方案3】:

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

    $("#edit-rec  option").each(function(){
    
        this.selected=false;
    
    });
    

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      • 请在您的答案中添加一些解释,使其更具可读性
      • 还没有阅读文档,但它有效:)
      【解决方案5】:

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

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

      【讨论】:

      • 在我的情况下 $("select").val([]);完美运行,谢谢!
      【解决方案6】:
      $("#edit-rec option:selected").removeAttr("selected");
      

      【讨论】:

        【解决方案7】:
        $("#butt").click(function () {
            $("#edit-rec > option").removeProp("selected");
        });
        

        新的 jQuery 版本是正确的

        【讨论】:

        • 非常糟糕的主意,来自api.jquery.com/removeProp 这将完全删除该属性,并且一旦删除,就无法再次将其添加到元素中。使用 .prop() 将这些属性设置为 false。
        【解决方案8】:

        可以做这样的 JS Fiddle 来设置单选按钮的点击 http://jsfiddle.net/x5ck3/

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

        【讨论】:

          【解决方案9】:

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-06-14
            • 2013-12-09
            • 1970-01-01
            • 1970-01-01
            • 2019-09-23
            • 2012-09-09
            • 2020-06-04
            相关资源
            最近更新 更多