Get Current User data using jQuery/JavaScript
Add a Content editor webpart in InfoPath form New page, add the below code
<script type=”text/javascript” language=”javascript”>
var user;
var email;
var firstname;
var surname;
function getUserInfo()
var clientContext = new SP.ClientContext();
user = clientContext.get_web().get_currentUser();
clientContext.load(user);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var UserName = user.get_title();
var UserNamearray = UserName.split(” “);
firstname= UserNamearray[0];
surname= UserNamearray[1];
email = user.get_email();
$(“input[title=’First Name’]”).val(firstname); //title is text box tool tip property
$(“input[title=’First Name’]”).focus(); // set focus is very important to retain the value in the form
$(“input[title=’Sur Name’]”).val(surname);
$(“input[title=’Sur Name’]”).focus();
$(“input[title=’Email’]”).val(email);
$(“input[title=’Email’]”).focus();
}
function onQueryFailed(sender, args) {
alert(‘Request failed. ‘ + args.get_message() + ‘\n’ + args.get_stackTrace());
}
$( document ).ready(function(){
ExecuteOrDelayUntilScriptLoaded(getUserInfo, “sp.js”);
});
Point to remember when set the text with InfoPath form text box
- .val to set the value
- set focus() is very important, otherwise it will remove when any dropdown or richtextbox column sending data to server.
- In InfoPath form, Text box property –> Browser forms tab –> set the postback options of the field to NEVER , refer image below.
This way we can call JSON Rest API’s and update the InfoPath form columns.