Populate field onLoad Social feed SharePoint 2013
-
08-02-2021 - |
Question
I am trying to auto populate user Email, Name, Title on a SharePoint form.
I can see the values when I inspect the page (F12) but they don't appear on the form onLoad
.
I can obtain the input fields id via the developer tool, not 100% sure I am using the correct ID.
Here is the code I am using:
$(function () {
getUserProfileInfo();
});
function getUserProfileInfo() {
var fullUrl = "https://sites/sites/dome/_api/social.feed/my";
$.ajax({
url: fullUrl,
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
},
success: onUserInfoQuerySucceeded,
error: onQueryFailed
});
}
function onUserInfoQuerySucceeded(data) {
var userInfoItemE = data.d.Me.EmailAddress;
var userInfoItemN = data.d.Me.Name;
var userInfoItemT = data.d.Me.Title;
document.getElementById('Email_a6570af6-8b72-4ab0-814d-93f50f26e185_$TextField').innerHTML = userInfoItemE;
document.getElementById('Name_b6023c0f-43be-45b4-b946-22ac2933bb77_$TextField').innerHTML = userInfoItemN;
document.getElementById('Title_fa564e0f-0c70-4ab9-b863-0177e6ddd247_$TextField').innerHTML = userInfoItemT;
}
function onQueryFailed(sender, args) {
alert("Error");
}
La solution
Instead of
document.getElementById('Email_a6570af6-8b72-4ab0-814d-93f50f26e185_$TextField').innerHTML = userInfoItemE;
try
document.getElementById('Email_a6570af6-8b72-4ab0-814d-93f50f26e185_$TextField').value= userInfoItemE;
Explanation
innerHTML
is supposed to manage the child HTML elements. In your case, it procudes invalid HTML. < input >
is not supposed to have child elements.
Instead, you want to update value
attribute of the input
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange