从下拉列表中获取已过滤的数据,并显示在另一个下拉列表中

时间:2015-07-20 17:36:41

标签: javascript c# jquery asp.net asp.net-ajax

我有一个下拉列表:

<asp:DropDownList ID="DropDownList1" runat="server" Width="222px">
    <Items>
        <asp:ListItem Text="Option 1" Value="1" />
        <asp:ListItem Text="Option 2" Value="2" />
        <asp:ListItem Text="Option 3" Value="3" />
        <asp:ListItem Text="Option 4" Value="4" />
        <asp:ListItem Text="Option 5" Value="5" />
        <asp:ListItem Text="Option 6" Value="6" />
        <asp:ListItem Text="Option 7" Value="7" />
    </Items>
</asp:DropDownList>

我想创建一个下拉列表,其中包含上述下拉项目的所有项目,但正在选择的项目(上图)除外。 例如:我在上面的下拉列表中选择了选项4,我想提供1到7的选项(选项4除外)作为第二个下拉列表的项目列表。

有人可以告诉我如何实现它吗?

2 个答案:

答案 0 :(得分:0)

我已使用以下代码将下拉列表值克隆到其他下拉列表值。

<script type="text/javascript">
$(function() {
$("#btnclone").click(function() {
$('#DropDownList1').clone().attr('id', 'choices_' + $(this).index()).insertAfter("#DropDownList1");
});
});
</script>

但是有人可以建议如何显示除上一个下拉列表中选定值之外的所有值吗?

答案 1 :(得分:0)

这个对我有用:

 <script type="text/javascript">
    $('#btnclone').click(function () {
        var original = $('select.selService:eq(0)');
        var allSelects = $('select.selService');
        var clone = original.clone();

        $('option', clone).filter(function (i) {
            return allSelects.find('option:selected[value="' + $(this).val() + '"]').length;
        }).remove();

        $('#target').append(clone).append('<br />');
    });
</script>