在背景变动的火事件

时间:2016-10-28 15:14:34

标签: javascript jquery sharepoint sharepoint-2013

只是背景: (与问题无关)

我正在使用SharePoint并创建一个Sharepoint托管应用程序。

我有一些字段提供了一个peoplepicker,我可以从用户池中选择用户。功能实现由SharePoint内部脚本提供。

如果我通过jquery输入用户名,则没有任何反应。我猜它没有内置的更改处理程序。

我所做的是一个分离脚本,它只通过trigger("change")解析我的jquery输入上的用户名,然后执行这项工作的SharePoint内部脚本。这个"工作"是异步的,然后如果数据从后端到达,则SharePoint脚本会将数据应用于Peoplepicker字段。

但是这个功能也不支持jQuery的触发器,因为我不能改变它们预先定义的功能......

所以我想要做的是监视Peoplepicker字段中的文本何时被更改但我现在有点迷失。

问题:

我已经尝试使用以下代码(它不起作用):

$('.peoplePickerDiv').bind("DOMSubtreeModified", function () {
    alert("HAS BEEN CHANGED!");
});

还有另一种方法可以对我的DOM中的输入字段进行背景编辑吗?

1 个答案:

答案 0 :(得分:1)

For Picker控制操作SPClientPeoplePicker objectclientpeoplepicker.js)旨在提供从选择器获取信息或执行其他操作的方法。

SPClientPeoplePicker类公开以下事件:

OnValueChangedClientScript事件可能适合您的场景,以下是如何附加它的示例:

var picker = SPClientPeoplePicker.SPClientPeoplePickerDict[peoplePickerId];
picker.OnValueChangedClientScript = function (elementId, userInfo) {
    if(userInfo.length > 0){ // once the value is resolved it could be retrieved via `userInfo` object
       console.log(userInfo[0]);   
    }
    console.log('value changed');
};      

<强>参考

Use the client-side People Picker control in SharePoint-hosted SharePoint Add-ins