[SharePoint 2013] Set value for people editor with JSOM
function PeoplePicker() { this.context = null; this.web = null; this.currentUser = null; this.parentTagId = null this.SetParentTagId = function (id) { this.parentTagId = id; } this.SetLoggedInUser = function () { if (this.parentTagId != null) { this.getWebUserData(); } } this.getWebUserData = function () { this.context = new SP.ClientContext.get_current(); this.web = this.context.get_web(); this.currentUser = this.web.get_currentUser(); this.currentUser.retrieve(); this.context.load(this.web); this.context.executeQueryAsync(Function.createDelegate(this, this.onSuccessMethod), Function.createDelegate(this, this.onFailureMethod)); } this.onSuccessMethod = function () { this.setDefaultValue(this.currentUser.get_title()); } this.onFailureMethod = function () { alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace()); } this.setDefaultValue = function (value) { var parentTag = document.getElementById(this.parentTagId); if (parentTag != null) { var _ppe = $("input[title='" + $(parentTagId).attr('title') + "']"); _ppe.val(value); var _ppo = SPClientPeoplePicker.SPClientPeoplePickerDict[this.parentTagId]; _ppo.AddUnresolvedUserFromEditor(true); } } } function SetWebUserData() { var pplPicker = new PeoplePicker(); var controlId = $('td.ms-formlabel:contains("field name")').siblings('td').find('div[title="field name"]').prop("id"); pplPicker.SetParentTagId(controlId); pplPicker.SetLoggedInUser(); } $(document).ready(function(){ ExecuteOrDelayUntilScriptLoaded(SetWebUserData, "sp.js"); });
本文版权归菜鸟和博客园共有,欢迎转载,但请注明出处。