Sharepoint 2013 Javascript ClientPeoplePicker默认值文本
Sharepoint 2013 Javascript ClientPeoplePicker default value text
我正在sharepoint 2013中编写一个表单,该表单通过javascript捕获表单并提交。在大多数情况下,一切都正常。但是,对于ClientPeoplePicker,当我获得值时,它会返回"输入姓名或电子邮件"行以及我的值。解析起来很简单,但仍然很烦人,因为我觉得它不应该那样工作。
遗憾的是,我没有像其他在线用户那样获得价值,因为"ClientPeoplePicker"从未出现在我的渲染代码id中。我不知道为什么。所以我只能凭头衔来获得它。
function formatUserArrayForSharePoint(selector) {
var users = [];
$.each(selector, function (i, v) {
var html = $.parseHTML(v.outerHTML);
var username = '';
if ($(html[0]).text().indexOf('Enter a name') !== -1)
username = $(html[0]).text(0.substring(32, $(html[0]).text().length - 1);
else username = $(html[0]).text();
users.push(SP.FieldUserValue.fromUser(username));
});
return users;
}
//fill the variable to add to list
field1 = formatUserArrayForSharePoint($("div[title='ascpp']));
oListItem.set_item('field1', field1);
//etc
<SharePoint:ClientPeoplePicker
AllowMultipleEntities="false"
runat="server" Title="ascpp"
ID="field1" AllowEmailAddresses="True" />
正如我之前所说,当我的代码呈现时,没有像其他示例那样的id格式。
其他人使用的示例:
var pickerDiv = $("[id$='ClientPeoplePicker'][title='" + dispTitle + "']");
我的渲染代码示例(不是全部):
<div id="ct100_PlaceHolderMain_field1_TopSpan" class="sp-peoplepicker-topLevel" title="ascpp" spclientpeoplepicker="true">
<!-- other stuff that is too much to type -->
</div>
您需要获取SharePoint客户端人员选取器更改事件的选取器id。我使用OnUserResolvedClientScript
得到了相同的结果,如下所示。在这里,为了获得pickerdiv,我采用了通过人员选择器文本框id
和title name
获得它的方法,您可以通过检查元素来获得。将以下代码放入$(document).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);
}
});
答案似乎只是去掉不需要的字符。
相关文章:
- 如何为显示jquery滑块值的文本框设置默认值
- 文本框的一部分为只读,具有默认值
- Sharepoint 2013 Javascript ClientPeoplePicker默认值文本
- 在发送之前,点击按钮清除多个输入[类型=文本]默认值
- 如果文本框为空,则将其返回到默认值
- 清除输入,模糊文本区域和默认值(如果字段为空)
- Angularjs URL 在文本区域中的默认值中
- Onclick 事件以删除文本输入字段中的默认值
- 如何为 Google 放置 API 自动完成文本框设置默认值
- 如何“取消设置”Dojo 日期文本框默认值
- 如何在输入文本中设置默认值(美元或欧元)
- 要取消映射输入文本框的默认值
- 如何覆盖默认值“;文本“;鼠标下移,鼠标移动
- 在 Jquery EasyUI 对话框中设置输入文本框的默认值
- 如何将文本区域的值恢复为默认值
- 在使用jQuery输入文本之前,使文本框中的默认值不变
- AngularJS文本输入使用ng模型,但需要默认值,而不使用value=或ng-init=
- javascript:具有默认值的文本框
- 通过单击SELECT选项,将文本INPUT元素的VALUE动态设置为默认值
- 设置输入文本默认值,并选择选项值,然后禁用