使用jquery

时间:2017-06-06 13:27:55

标签: c# jquery asp.net

我有一个多选下拉列表。所有选定的文本和值都应显示为其他下拉列表中的每个条目。我的编码有点像这样,但它不起作用。多选下拉列表的所有选择都附加在另一个下拉列表的单个条目上。它不显示为单独的条目。

#LstCashAccount是多选下拉列表,#ddlDefaultCash是多选下拉列表中选中的条目必须受到影响的下拉列表

$('#LstCashAccount').change(function () {

    $("#ddlDefaultCash").empty();
    $("#ddlLoyaltyAcc").empty();
    var CashAcc = "";
    var CashAccId = $("#LstCashAccount").val();
    CashAccIdSplit = CashAccId.splice(",")
    CashAcc = $(this).find("option:selected").text();
    CashAccSplit = CashAcc.split(".")

    $("#ddlDefaultCash").append('<option class="InputDefCash" Id=' + CashAccIdSplit + '>' + CashAccSplit + '</option>');

});

1 个答案:

答案 0 :(得分:0)

所以这里有多个问题。

首先,了解.append()功能实际上是创建项目的重要性。你只能将这个称为,所以期待有多个项目,坦率地说,有点傻。

其次,您在字符串上使用.splice(),这不是有效的。我有预感你做.split()的预感,但没有你的HTML标记,它在黑暗中有点像。

最后,您的CashAccSplit变量(并且,我认为,您的CashAccIdSplit 假设数组)。如果你只是用字符串连接它,它将输出整个数组。

如果我们清理它,您可能正在寻找更像以下内容......

$('#LstCashAccount').change(function () {

    $("#ddlDefaultCash").empty();
    $("#ddlLoyaltyAcc").empty();

    var CashAcc = $(this).find("option:selected").text();
    var CashAccId = $("#LstCashAccount").val();

    var CashAccIdSplit = CashAccId.split(",")
    var CashAccSplit = CashAcc.split(".")

    //Use .each to iterate through the array, append each member as an item
    $.each(CashAccIdSplit, function(index, item) {
        $("#ddlDefaultCash").append('<option class="InputDefCash" Id=' + CashAccIdSplit[index] + '>' + CashAccSplit[index] + '</option>');
    });

});