【问题标题】:How to remove SELECTED Listbox Item when click the Button using Jquery?使用 Jquery 单击按钮时如何删除 SELECTED 列表框项?
【发布时间】:2017-02-14 09:40:12
【问题描述】:

我有 2 个名为 lstLeft and listRowField 的 Asp ListBox。当用户从 1stLeft 中选择项目并单击按钮时,它将移动到另一个列表框 (listRowField) 但有限制 (某些项目不应移动)

到目前为止,我已经做到了,代码运行良好。当用户选择受限项目并点击按钮时,被选中的项目应该再次被取消选择

1stLeft 的 TotalQuantity 不允许移动。一旦它显示警报消息,来自1stLeft 的选择颜色应该会被移除。

我试过这段代码,但不起作用

$('#rightRow').click(function () {       

    var options = $("[id*=lstLeft] option:selected");

    for (var i = 0; i < options.length; i++) {
        if ($(options[i]).val() === 'TotalQuantity' || $(options[i]).val() === 'ExtendedPrice' || $(options[i]).val() === 'ExtendedCost' || $(options[i]).val() === 'Profit') {

            alert($(options[i]).val() + " is not allowed to Data Field");

            //I tried these TWO CODES. But it doesn't work.

            //$('.multiselectOptions:selected', this).remove();
            $("#lstLeft option[value=" + $(options[i]).val() + "]").attr("selected", false);
        }
        else {
            var opt = $(options[i]).clone();

            $(options[i]).remove();
            $("[id*=listRowField]").append(opt);
        }
    }
}

更新

//Multiselection
$('.multiselectOptions').mousedown(function (e) {
    e.preventDefault();
    $(this).prop('selected', $(this).prop('selected') ? false : true);
    return false;
});


<asp:ListBox ID="lstLeft" class="form-control" runat="server" SelectionMode="Multiple" Height="260px" onclick="ListBoxClient_SelectionChanged(this, event);">
   <asp:ListItem class="multiselectOptions" Value="StoreID">StoreID</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="ItemLookupCode">ItemLookupCode</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="ExtendedDescription">ExtendedDescription</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="SubDescription1">SubDescription1</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="DepartmentName">DepartmentName</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="CategoryName">CategoryName</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="SupplierCode">SupplierCode</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="SupplierName">SupplierName</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="TotalQuantity">TotalQuantity</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="ExtendedPrice">ExtendedPrice</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="ExtendedCost">ExtendedCost</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="Profit">Profit</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="UnitOfMeasure">UnitOfMeasure</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="CustomerAccountNumber">CustomerAccountNumber</asp:ListItem>
   <asp:ListItem class="multiselectOptions" Value="CustomerName">CustomerName</asp:ListItem>
</asp:ListBox>

此代码用于多选。取消选择是不是让我错了?

谢谢

【问题讨论】:

  • 你是否在 :hover 时添加一些颜色?
  • @SilentCoder 不
  • 那它是怎么上色的?
  • @SilentCoder 我没有设置任何颜色。当用户选择项目时,将设置该颜色。

标签: javascript jquery asp.net listbox


【解决方案1】:

试试这个,

$('option:selected', this).remove();

【讨论】:

  • 当我在选择列表项后看到控制台时,代码上没有选择它。你明白我在说什么吗?
  • 然后试试$('option:active', this).remove();
  • 是的..你可以在点击事件中使用它,比如$(this).prop('selected', false);
猜你喜欢
  • 2021-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-05
  • 1970-01-01
  • 2020-11-06
  • 1970-01-01
相关资源
最近更新 更多