我有一个多选下拉列表。所有选定的文本和值都应显示为其他下拉列表中的每个条目。我的编码有点像这样,但它不起作用。多选下拉列表的所有选择都附加在另一个下拉列表的单个条目上。它不显示为单独的条目。
#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>');
});
答案 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>');
});
});