Javascript中的Sharepoint 2013人员选取器更改事件

Javascript中的Sharepoint 2013人员选取器更改事件,javascript,jquery,sharepoint,sharepoint-2013,Javascript,Jquery,Sharepoint,Sharepoint 2013,我想要Javascript中的人员选取器更改事件,因为如果使用ClassName在人员选取器中选择/更改用户,我必须执行一些任务 我试过以下方法 $(".Assignedname").bind('input propertychange', function() { alert("Onchange event" ); }) 当我键入任何内容(即文本已更改)时触发,但当在People picker中选择user时不触发。 请给我一些解决办法。谢谢初始化人员选取器后,您可以在js字典

我想要Javascript中的人员选取器更改事件,因为如果使用ClassName在人员选取器中选择/更改用户,我必须执行一些任务

我试过以下方法

$(".Assignedname").bind('input propertychange', function() { 
     alert("Onchange event" ); 
})
当我键入任何内容(即文本已更改)时触发,但当在People picker中选择user时不触发。
请给我一些解决办法。谢谢

初始化人员选取器后,您可以在js字典中访问它,并为选取器的OnValueChangedClientScript属性分配一个函数。该函数接受两个参数,其中第二个参数(userInfo)是选择器中的用户集合

var picker = SPClientPeoplePicker.SPClientPeoplePickerDict[pickerId + "_TopSpan"];
picker.OnValueChangedClientScript = function (elementId, userInfo) {
    for (var x = 0; x < userInfo.length; x++) {
        console.log(userInfo[x].Key);
    }
    alert("Total number of " + userInfo.length + " users is selected")
};      
var picker=SPClientPeoplePicker.SPClientPeoplePickerDict[pickerId+“_TopSpan”];
picker.OnValueChangedClientScript=函数(elementId,userInfo){
对于(var x=0;x
初始化人员选取器后,您可以在js字典中访问它,并为选取器的OnValueChangedClientScript属性分配一个函数。该函数接受两个参数,其中第二个参数(userInfo)是选择器中的用户集合

var picker = SPClientPeoplePicker.SPClientPeoplePickerDict[pickerId + "_TopSpan"];
picker.OnValueChangedClientScript = function (elementId, userInfo) {
    for (var x = 0; x < userInfo.length; x++) {
        console.log(userInfo[x].Key);
    }
    alert("Total number of " + userInfo.length + " users is selected")
};      
var picker=SPClientPeoplePicker.SPClientPeoplePickerDict[pickerId+“_TopSpan”];
picker.OnValueChangedClientScript=函数(elementId,userInfo){
对于(var x=0;x
您需要获取SharePoint客户端人员选取器更改事件的选取器id。我使用
OnUserResolvedClientScript
获得了相同的结果,如下所示。在这里,为了获取picker div,我采用了通过people picker文本框
id
title name
获取它的方法,您可以通过检查元素来获取它。将以下代码放入
$(文档).ready
功能中。快乐编码

SP.SOD.executeFunc('clientpeoplepicker.js', 'SPClientPeoplePicker', function() {
    var pickerDiv = $("[id^='Employee_x0020_Name'][title='Employee Name']");
    var picker = SPClientPeoplePicker.SPClientPeoplePickerDict[pickerDiv[0].id];
    picker.OnUserResolvedClientScript = function(peoplePickerId, selectedUsersInfo) {
 //It will get the desired display name of the people from picker div, similarly any other property can be accessed via selectedUsersInfo
        var empname = selectedUsersInfo[0].DisplayText;
        console.log(empname);
    }
});

您需要获取SharePoint客户端人员选取器更改事件的选取器id。我使用
OnUserResolvedClientScript
获得了相同的结果,如下所示。在这里,为了获取picker div,我采用了通过people picker文本框
id
title name
获取它的方法,您可以通过检查元素来获取它。将以下代码放入
$(文档).ready
功能中。快乐编码

SP.SOD.executeFunc('clientpeoplepicker.js', 'SPClientPeoplePicker', function() {
    var pickerDiv = $("[id^='Employee_x0020_Name'][title='Employee Name']");
    var picker = SPClientPeoplePicker.SPClientPeoplePickerDict[pickerDiv[0].id];
    picker.OnUserResolvedClientScript = function(peoplePickerId, selectedUsersInfo) {
 //It will get the desired display name of the people from picker div, similarly any other property can be accessed via selectedUsersInfo
        var empname = selectedUsersInfo[0].DisplayText;
        console.log(empname);
    }
});

关于此方法的一个警告:我最近遇到了Microsoft Edge的一个计时问题,在填充people picker对象之前,我附加事件处理程序的脚本已经运行,因此代码失败。请确保在附加事件处理程序之前初始化了
SPClientPeoplePicker.SPClientPeoplePickerDict[peoplePickerId]
。关于此方法的警告:我最近在Microsoft Edge中遇到了一个计时问题,在填充people picker对象之前,我附加事件处理程序的脚本运行,因此代码失败。在附加事件处理程序之前,请确保已初始化
SPClientPeoplePicker.SPClientPeoplePickerDict[peoplePickerId]