在 javascript 中解析多选择器

Parsing out muiltipicker in javascript

我创建了一个表单,可以通过 SharePoint 的 UPS 自动从 AD 中提取一个人的 (peoplepicker) 办公室位置,并将其填充到输入字段中。我遇到的麻烦是提取多个人的办公地点,并让其解析每个人各自的办公地点,以将其也放置在现场。任何想法或帮助将不胜感激。

这是表格,如您所见,它可以填充一个人的办公室,但不能填充其他人:

经过进一步研究,我想感谢这个有用的 JavaScript SharePoint 库的作者:http://spjsfiles.com/index.php?dir=SharePoint%20JavaScripts/spjs-utility/

此库从 SharePoint 主列表获取用户信息。您可以使用以下函数获得它:function fillFieldDemo(){

    setFieldValue('Date', '1/1/2017');  
    setFieldValue('MM','Boston;London');    

    var userInfo = getUserInfo_v2(_spPageContextInfo.userId);
    setFieldValue('Person', userInfo.Name); 

    setTimeout(function(){
        var title = getFieldValue('Person');
        setFieldValue('Title', title);  
    }, 2000);
}

_spBodyOnLoadFunctionNames.push("fillFieldDemo");

现在您可以找到用户的姓名、办公室等。

为了解析输入文本框中的多个名称并分别拉出他们的办公室,您可以更改此功能,如下所示:

function fillFieldDemo() {

    $('.button').on('click', function() {
        var subjects = $('.ms-entity-resolved');
        var offices = [];

        for (var i = 0; i < subjects.length; i++) {
            var s = $(subjects[i]).prop("title");
            var print = $('.name').val(s);

            var userInfo = **getUserInfo_v2**(s);

            for (var key in userInfo) {
                var value = userInfo.**Office**;
            }

            offices.push(value);
        }

        var input = $('.parse').val(offices);

    });
}

_spBodyOnLoadFunctionNames.push("fillFieldDemo");

这将允许用户在输入文本框中输入多个姓名,它会解析姓名并获取每个人的办公室。