javascript - 克隆到新的动态生成的下拉列表后,删除先前选择中的选定项目

标签 javascript c# jquery asp.net

我有一个 asp.net 下拉列表和一个 asp.net 按钮控件。每次单击该按钮时,都会生成一个新的下拉列表,其中包含除先前选择的值之外的所有值。

例如:如果我从值列表 {a,b,c} 中选择“a”,然后单击按钮,我应该会得到一个包含值 {b,c} 的新下拉列表。

尽管我能够克隆下拉列表值,但我不知道如何通过删除所选值来过滤值。

编辑

这是场景

  • 我一开始只有 1 个下拉列表(有 5 个选项)=> 1,2,3,4,5 -> 默认情况下会选择第一个选项。
  • 我选择选项 5(在选择列表 #2 中)
  • 我点击克隆 -> 添加新列表 (#3),仅包含选项 2、3、4
  • 我选择选项 2(在选择列表 #3 中)
  • 我点击克隆 -> 使用选项 3,4 创建新列表 (#4)
  • ..等等。

这是我的代码:

<form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="ddlCityName" runat="server" class="ddlClone" DataTextField="City" DataValueField="City" CssClass=""></asp:DropDownList>
        <asp:Button ID="btnClone" runat="server" Text="Clone" />
    </div>
    <div id="container">
    </div>
</form>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("[id*=btnClone]").bind("click", function () {
            var index = $("#container select").length + 1;
            var ddl = $("[id$=ddlCityName]").clone();
            ddl.attr("id", "ddlCityName_" + index);
            ddl.attr("name", "ddlCityName_" + index);
            $("#container").append(ddl);
            $("#container").append("<br /><br />");
            return false;
        });
    });
</script>

最佳答案

您可以获取所选值并将其从克隆后的新选择中删除,如下所示:

$(ddl).find("option[value='"+selVal+"']").remove();

这是一个带有运行示例的 jsFiddle:https://jsfiddle.net/ntvo173q/

我更新了 jsFiddle 以删除所有以前选择的项目,只需查看:

我所做的是获取所有选定的值并从新选择中删除:

var ddl = $('#sel').clone();
    $('select').each(function() {
        $(ddl).find("option[value='"+$(this).val()+"']").remove();

    });

https://jsfiddle.net/ntvo173q/1/

关于javascript - 克隆到新的动态生成的下拉列表后,删除先前选择中的选定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31550115/

相关文章:

java - JSP 名称参数作为字符串动态显示在同一 JSP 页面中

c# - 跨平台上的 AES cbc 填充加密/解密(.net c# 和代号 one bouncy caSTLe)

c# - 字符串英语化?

javascript - 单击 x 删除 y 上的类

javascript - 如何在网站上使用 Aloha 编辑器

javascript - ajax 调用缺少参数

javascript - 使用javascript在iframe中通过id更改元素的CSS样式

c# - Entity Framework : Illegal characters in path.(连接字符串)(MVC3)

javascript - .prevUntil 未按预期工作

javascript - 尝试在 JavaScript 中使用 jQuery 制作价格表