我在SharePoint中有一个页面,它使用JavaScript构建一堆表。我需要从列表中获取多选字段的选定值,并将该值写入表中的列。我已经获得了我需要的所有其他值,但是这个值会抛出错误或返回[Object Object]
,具体取决于我的编写方式。
fieldValue = listItemArray[i].get_item(listFieldArray[j].fieldInternalName);
返回[Object Object]
,当我在浏览器调试器的监视列表中展开fieldValue
时,它只返回列表中的第一个选项,而不是选定的值,但仍会写入[Object Object]
到页面。
答案 0 :(得分:0)
以下是有效的答案:
更具体地说:
value = listItemArray[i].get_item(listFieldArray[j].fieldInternalName);
for (var z=0; z<value.length; z++) {
var valueLU=value[z];
fieldValue=valueLU.get_lookupValue();
}
答案 1 :(得分:0)
多选字段返回所有选定选项的数组。因此,您必须迭代此数组才能访问所有存在的对象。
再次选择的选项将是对象,因为查找字段存储对象(例如5; #someValue)而不是实际值。 IT有两个属性
查找ID(5)
查找值(someValue)
有关详细信息,请参阅此链接 - SharePoint JavaScript CSOM: Best way to deal with Lookup fields?
尝试以下代码。它应该适合你:
objLength = oListItem.get_item('MultiLookup').length;
for(var i=0; i<objLength; i++){
oListItem.get_item('MultiLookup')[i].get_lookupValue();
//oListItem.get_item('MultiLookup')[i].get_lookupId();
}
注意:
MultiLookup 是多选字段的内部名称。