2016-04-04 10 views
0

Ich schreibe ein Formular in SharePoint 2013, die das Formular über Javascript erfasst und übermittelt. Alles funktioniert größtenteils. Wenn ich jedoch den Wert von ClientPeoplePicker erhalte, gibt es die Zeile "Geben Sie einen Namen oder eine E-Mail ein" sowie meinen Wert zurück. Einfach genug, um zu analysieren, aber immer noch nervig, da ich denke, dass es so nicht funktionieren sollte.Sharepoint 2013 Javascript ClientPeoplePicker Standardwert Text

Leider bekomme ich nicht den Wert in der Art, dass alle anderen online sind, weil "ClientPeoplePicker" nie in meiner gerenderten Code-ID angezeigt wird. Ich habe keine Idee warum. Also bin ich gezwungen, es nur nach Titel zu bekommen.

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" />

Wie ich schon sagte, wenn mein Code macht, gibt es kein Format der ID ist wie andere Beispiele.

Beispiel von dem, was andere verwenden:

var pickerDiv = $("[id$='ClientPeoplePicker'][title='" + dispTitle + "']");

Beispiel meines gerenderten Code (nicht ganze Sache):

<div id="ct100_PlaceHolderMain_field1_TopSpan" class="sp-peoplepicker-topLevel" title="ascpp" spclientpeoplepicker="true"> 
 
    <!-- other stuff that is too much to type --> 
 
</div>

+0

Dies ist eine JS-Funktion Ich habe eine Weile zurück, versuchen Sie es 'Funktion SetPeoplePickerValue (fieldName, userAccountName) { var peoplePickerDiv = jQuery (" [spclientpeoplepicker = 'wahr'] [title = '"+ fieldName +" "]"); var peoplePickerEditor = peoplePickerDiv.find ("[title = '" + fieldName + "']"); var spPeoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict [peoplePickerDiv [0] .id]; peoplePickerEditor.val (userAccountName); spPeoplePicker.AddUnresolvedUserFromEditor (true); }; ' – Shawn

Antwort

0

Es ist ein Die Antwort besteht darin, die nicht benötigten Zeichen einfach zu entfernen. Los Team.

Verwandte Themen