2016-04-04 18 views
0

私は、JavaScriptを使用してフォームをキャプチャして送信するSharePoint 2013でフォームを作成しています。ほとんどの場合、すべてが機能します。しかしClientPeoplePickerでは、値を取得すると、「名前または電子メールの入力」行と自分の値が返されます。私はそれがそのように動作しないように感じるので、解析するのに十分な、しかし、まだ迷惑な。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>

+0

これは私がしばらく使っていたjs関数です。試しに 'function SetPeoplePickerValue(fieldName、userAccountName){ var peoplePickerDiv = jQuery(" [spclientpeoplepicker = 'true'] [title = '"+ fieldName + ']」); var peoplePickerEditor = peoplePickerDiv.find( "[title = '" + fieldName + "']"); var spPeoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict [peoplePickerDiv [0] .id]; peoplePickerEditor.val(userAccountName); spPeoplePicker.AddUnresolvedUserFromEditor(true); }; ' – Shawn

答えて

0

それ答えは、不必要な文字を取り除くことです。チームに行ってください。

関連する問題