在jQuery中使用空数组替换后,ListBox项仍然存在

时间:2016-03-13 08:23:34

标签: javascript c# jquery listbox

我有一个列表框,我想通过jQuery清除而不刷新页面。

<asp:ListBox ID="lbComplaints" runat="server" 
ClientIDMode="Static" SelectionMode="Multiple" 
placeholder="Select Complaints" Style="width: 280px;" AppendDataBoundItems="True">
单击按钮

$('input[type="submit"]').click(function (e) {
        e.preventDefault(); 
    $("#lbComplaints").val([]);    
)};

它没有显示任何错误,但项目保留在之前的选择中。

我试过

 $("#lbComplaints").empty();

但是列表框的所有数据都被删除了,但我不想删除选项,而是取消选择列表框值中的上一个选项,以便用户可以再次选择。我怎么能这样做?

按照我使用的方式

$('#lbComplaints').select2({
        placeholder: 'select a state',
        //tags: "true",
        //allowClear: true,
        theme: "classic"
    });

3 个答案:

答案 0 :(得分:1)

您可以尝试这样的方法来重置它:

 $("#lbComplaints option:selected").removeAttr("selected");

答案 1 :(得分:1)

取消选择

$("#lbComplaints").find("option").attr("selected", false);

您正在使用select2.js。 修改您的javascript如下

var $listX = $('#lbComplaints').select2({
        placeholder: 'select a state',
        //tags: "true",
        //allowClear: true,
        theme: "classic"
    });

    $('input[type="submit"]').click(function (e) {
            e.preventDefault(); 
           $listX.val(null);
    )};

请参阅此处的文档 https://select2.github.io/examples.html#programmatic-control

答案 2 :(得分:0)

但在

中找到了类似的答案

link

因为我正在使用select2 jQuery无法清除所选项目所以使用select2 $('#lbComplaints').select2('data', null); 这完美地运作