我試圖使用JavaScript來填充在Sharepoint 2013年PeoplePicker控制:如何填充PeoplePicker控件?
name="Engineer"
var ppDiv=$("[id$='ClientPeoplePicker'][title='"+name+"']");
console.log(ppDiv.html());
var ppEditor=ppDiv.find("[title='"+name+"']");
var spPP=SPClientPeoplePicker.SpClientPeoplePickerDict[ppDiv[0].id];
ppEditor.val("Abc, Xyz");
spPP.AddUnresolvedUserFromEditor(true);
兩個問題:ppDiv
仍然不確定賦值語句後,並沒有定義SPClientPeoplePicker
;根據this article,它由clientpeoplepicker.js
定義,該腳本應該在每個具有人員選取器的頁面上加載。
編輯:
我改變了代碼:
name="Engineer"
var ppDiv=$("div[title='"+name+"']");
console.log(ppDiv.html());
var ppEditor=ppDiv.find("[title='"+name+"']");
var spPPD=SPClientPeoplePicker.SpClientPeoplePickerDict;
console.log(spPPD[0]);
var spPP=spPPD[ppDiv[0].id];
ppEditor.val("Abc, Xyz");
spPP.AddUnresolvedUserFromEditor(true);
現在ppDiv定義(如通過其HTML控制檯日誌中成功地出現),但它的崩潰就行var spPPD=SPClientPeoplePicker.SpClientPeoplePickerDict;
與此錯誤:
Uncaught ReferenceError: SPClientPeoplePicker is not defined
難道是內串聯$()調用?嘗試包裝 「[id $ ='ClientPeoplePicker'] [title ='」+ name +「']」 括號內?沒有更多的代碼很難說。 –
@AndrueAnderson,你的意思是這是不足以重現問題的代碼? – sigil
我的意思是很難說沒有更多的代碼是什麼問題,但我相信我會得到一個錯誤複製粘貼提供的文本。 –