Set People and Group Field with Current User’s Login Name using Ecmascript\Javascript using Client Object Model – SharePoint 2010

Here is a quick example of  how to set the People and Group (People Picker) Field with the Login Name of the Current\Loggedin User.

You can paste this in a Hidden Content Editor webpart on a ListForm page.

<script type="text/javascript">

ExecuteOrDelayUntilScriptLoaded(GetUserLoginName, "sp.js");

function GetUserLoginName() {

context = new SP.ClientContext.get_current();
web = context.get_web();
this._currentUser = web.get_currentUser();
context.load(this._currentUser);
context.executeQueryAsync(Function.createDelegate(this, this.onSuccessMethod),

Function.createDelegate(this, this.onFailureMethod));
}

function onSuccessMethod(sender, args) {
alert('Name:' + this._currentUser.get_title() + '\n Login:' + this._currentUser.get_loginName());
AddCurrentUserToPP(this._currentUser.get_title());
}

function onFaiureMethod(sender, args) {
alert('request failed' + args.get_message() + '\n' + args.get_stackTrace());
}

function AddCurrentUserToPP(LoginName)
{

alert("Setting PP with" + LoginName);

var pickerNo = 1;
var pp = getPickerImputElement(pickerNo);

if(pp != null)
{
alert("Got the PP" + pp);
pp.innerHTML = LoginName;

}

}

function getPickerImputElement(pickerNo)
{
var result = '';
var divs = document.getElementsByTagName('DIV');
var j = 0;

for(var i=0; i < divs.length; i++)
{
if(divs[i ].id.indexOf('UserField_upLevelDiv') > 0)
{
j++;
if(j == pickerNo)
{
result = divs[i ];
break;
}
}
}
return result;
}

</script>

Related Posts