var multiselect = $("#SelectRoles").data("kendoMultiSelect");
var selectedData= [];
var items = multiselect.value();
for (var itm in items)
{
selectedData.push(itm);
}
var multiselect = $("#SelectRoles").data("kendoMultiSelect");
var selectedData= [];
var items = multiselect.value();
for (var i=0;i<items.length;i++)
{
selectedData.push(items[i]);
}
var sRows = [];
$('#cmGrid tr').each(function () {
// 'this' is a tr
$tr = $(this);
// create an object that will hold my array of selected values (and other stuff)
var rec = {};
rec.IsADelegateFor = [];
// loop over all tds in current row
$('td', $tr).each(function (colIndex, col) {
if (colIndex === 3) {
// make sure our MultiSelect exists in this td
if ($(this).find("#IsDelegateFor" + rec.CaseMemberId).length) {
// it exists, so grab the array of selected ids and assign to our record array
rec.IsADelegateFor = $(this).find("#IsDelegateFor" + rec.CaseMemberId).data("kendoMultiSelect").value();
}
}
}
// add this tr to the collection
sRows.push(rec);
}
var multiselect = $("#SelectRoles").data("kendoMultiSelect");
var selectedData= [];
var items = multiselect.value();
$.each(items ,function(i,v){
selectedData.push(v);
});
6条答案
按热度按时间qzlgjiam1#
您也可以将value()方法返回的数组直接赋给变量e。例如:
oipij1gg2#
使用另一个返回索引。
vxf3dgd43#
你的原始代码看起来没有错。您确定您只获取索引吗?也许你也应该发布你的MultiSelect代码。我发现这个问题是因为我有同样的问题,并使用了其他答案作为参考,但我发现它们过于复杂。所以让我用另一种复杂的方式来回答:)
这是我得到的。我知道这比您需要的代码要多,但我认为在这里看到完整的画面很重要。先让我安排一下。剑道()有问题。多选。Name(“SomeName”)属性,如果您要多次使用它。“Name”不仅设置了html名称,还设置了id,而且您永远不希望两个id具有相同的标识符。因此,在我的代码中,我向MultiSelect添加了一个唯一的ID。属性以确保唯一的ID。我把多选择在每一行的人表。我展示这一点是为了确保您使用的是DataValueField属性,这样您就能够获得所选的值(而不是您在ui中看到的文本)。如果您只是显示一个文本值列表,而后面没有id,也许这就是您获得错误数据的原因?
然后,稍后,在我的jQuery中,我试图提取DataValueField(CaseMemberId),这是MultiSelect的选定值的数组。..
所以这是一个超级冗长的方式说,这一行,正如其他人提到的工作完美地抓住id。类进行迭代。value()数组并将内容推送到另一个数组!
所以在你的原始代码中,下面的代码没有理由不起作用,
除非
deikduxw4#
yws3nbqq5#
volvox给出的解决方案是可行的。
下面是jquery版本
hof1towb6#
如果要同时获取选定的文本和值: