火灾事件的背景变化

Fire Event on Background Change

本文关键字:变化 背景 事件 火灾      更新时间:2023-09-26

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

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

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

如果我通过jquery输入一个用户名,什么也不会发生。我猜它没有内置的更改处理程序。

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

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

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

问题:

我用下面的代码试过了(不工作):

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

是否有另一种方式来反应,让说背景编辑输入字段在我的DOM?

对于People Picker控件操作SPClientPeoplePicker object (clientpeoplepicker.js)是有意的,它提供了从选择器获取信息或执行其他操作的方法。

SPClientPeoplePicker类公开以下事件:

  • OnControlValidateClientScript -设置或清除服务器错误后触发
  • OnUserResolvedClientScript -在客户端
  • 中添加或删除已解析的用户时触发
  • OnValueChangedClientScript -在客户端输入文本或用户更改后触发

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');
};      

引用

在SharePoint托管的SharePoint插件中使用客户端People Picker控件