CSS Part
- <style>
- .ms-core-pageTitle {
- margin-top: 10px;
- margin-left: 400px;
- }
- div#leavefrom {
- background: antiquewhite;
- width: 800px;
- margin-left: 100px;
- padding-top: 50px;
- }
- table#leavefields {
- font-size: 15px;
- margin-left: 100px;
- }
- input#id1 {
- margin-left: 230px;
- margin-bottom: 15px;
- font-size: large;
- background-color: #e0e2e4;
- }
- input#btn {
- margin-bottom: 16px;
- background-color: #e0e2e4;
- }
- </style>
Js File
- var user = [];
- function GetUserId() {
- if (validate()) {
- $("div[class*='sp-peoplepicker-topLevel']").each(function() {
- if ($(this).find("span[class='ms-entity-resolved']").text().length > 0) {
- var endPointURLToGetUseID = _spPageContextInfo.webAbsoluteUrl + "/_api/web/siteusers?$select=Title,ID&$filter=Title eq '" + $(this).find("span[class='ms-entity-resolved']").text() + "'";
- $.ajax({
- url: endPointURLToGetUseID,
- type: "GET",
- dataType: "json",
- async: false,
- headers: {
- "accept": "application/json;odata=verbose"
- },
- success: callSuccessMethod,
- error: callFailureMethod
- });
- }
- });
- function callSuccessMethod(data, request) {
- $.each(data.d.results, function(key, val) {
- var GetId = val.Id;
- user.push([GetId]);
- });
- }
- function callFailureMethod(data, errCode, errMessage) {
- alert("Error: " + errMessage);
- }
- CreateListItem();
- }
- }
- function CreateListItem() {
- var clientContext = new SP.ClientContext('https://your site Url');
- var List = clientContext.get_web().get_lists().getByTitle('dynamiclist');
- var itemCreateInfo = new SP.ListItemCreationInformation();
- this.ListItem = List.addItem(itemCreateInfo);
- var Ename = document.getElementById("empname").value;
- var EmpID = document.getElementById("empid").value;
- var user1;
- ListItem.set_item('Employeename', Ename);
- ListItem.set_item('Empid', EmpID);
- if (user.length == 4) {
- ListItem.set_item('Approver1', user[1][0]);
- ListItem.set_item('Approver2', user[1][0]);
- ListItem.set_item('Approver3', user[2][0]);
- ListItem.set_item('Approver4', user[3][0]);
- ListItem.update();
- } else if (user.length == 3) {
- ListItem.set_item('Approver1', user[0][0]);
- ListItem.set_item('Approver2', user[1][0]);
- ListItem.set_item('Approver3', user[2][0]);
- ListItem.set_item('Approver4', user1)
- ListItem.update();
- } else if (user.length == 2) {
- ListItem.set_item('Approver1', user[0][0]);
- ListItem.set_item('Approver2', user[1][0]);
- ListItem.set_item('Approver3', user1);
- ListItem.set_item('Approver4', user1)
- ListItem.update();
- } else if (user.length == 1) {
- ListItem.set_item('Approver1', user[0][0]);
- ListItem.set_item('Approver2', user1);
- ListItem.set_item('Approver3', user1);
- ListItem.set_item('Approver4', user1)
- ListItem.update();
- } else if (user.length == 0) {
- ListItem.set_item('Approver1', user1);
- ListItem.set_item('Approver2', user1);
- ListItem.set_item('Approver3', user1);
- ListItem.set_item('Approver4', user1)
- ListItem.update();
- }
- clientContext.load(ListItem);
- clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
- }
- function onQuerySucceeded() {
- alert('Leave Applied Suceessfully');
- }
- function onQueryFailed(sender, args) {
- alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
- }
- function validate() {
- var returnval = true;
- if (document.getElementById("empname").value == "") {
- alert("Please enter the Employee ID");
- returnval = false;
- } else if (document.getElementById("empid").value == "") {
- alert("Please enter the Department.");
- returnval = false;
- } else if (document.getElementById("txtlev").value == 0) {
- alert("Please Specify level of approval");
- returnval = false;
- } else if (document.getElementById("peoplePickerDiv1_TopSpan_HiddenInput").value == "" || document.getElementById("peoplePickerDiv1_TopSpan_HiddenInput").value == "[]") {
- alert("Please Specify Approver1");
- returnval = false;
- } else if (document.getElementById("txtlev").value == 2 && document.getElementById("peoplePickerDiv2_TopSpan_HiddenInput").value == "" || document.getElementById("peoplePickerDiv2_TopSpan_HiddenInput").value == "[]") {
- alert("Please Specify Approver2");
- returnval = false;
- } else if (document.getElementById("txtlev").value == 3 && document.getElementById("peoplePickerDiv3_TopSpan_HiddenInput").value == "" || document.getElementById("peoplePickerDiv3_TopSpan_HiddenInput").value == "[]") {
- alert("Please Specify Approver3");
- returnval = false;
- } else if (document.getElementById("txtlev").value == 4 && document.getElementById("peoplePickerDiv4_TopSpan_HiddenInput").value == "" || document.getElementById("peoplePickerDiv4_TopSpan_HiddenInput").value == "[]") {
- alert("Please Specify Approver4");
- returnval = false;
- }
- return returnval;
- }
Html File
- <html>
- <head>
- <script src="https://code.jquery.com/jquery-1.8.3.js"></script>
- <script src="https://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
- <script type="text/javascript" src="_layouts/15/sp.runtime.js"></script>
- <script type="text/javascript" src="_layouts/15/sp.js"></script>
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.SPServices/2014.02/jquery.SPServices-2014.02.min.js" type="text/javascript"></script>
- <script src='UR Url/SiteAssets/Holiday/moment.js'></script>
- <script src="UR url/sppeoplepicker.min.js"></script>
- <script src="Ur url/sppeoplepicker.js"></script>
- <script src="JS File Mentioned Above/dynamic.js"></script>
- <script type="text/javascript">
- $(document).ready(function() {
- $("#peoplePickerDiv1").spPeoplePicker();
- $("#peoplePickerDiv2").spPeoplePicker();
- $("#peoplePickerDiv3").spPeoplePicker();
- $("#peoplePickerDiv4").spPeoplePicker();
- });
- </script>
- <script type="text/javascript">
- function jsFunction(value) {
- var returnval = true;
- if (document.getElementById("txtlev").value == 0) {
- $('tr[id="approver1"]').hide();
- $('tr[id="approver2"]').hide();
- $('tr[id="approver3"]').hide();
- $('tr[id="approver4"]').hide();
- returnval = false;
- } else if (document.getElementById("txtlev").value == 1) {
- $('tr[id="approver1"]').show();
- $('tr[id="approver2"]').hide();
- $('tr[id="approver3"]').hide();
- $('tr[id="approver4"]').hide();
- returnval = false;
- } else if (document.getElementById("txtlev").value == 2) {
- $('tr[id="approver2"]').show();
- $('tr[id="approver1"]').show();
- $('tr[id="approver3"]').hide();
- $('tr[id="approver4"]').hide();
- returnval = false;
- } else if (document.getElementById("txtlev").value == 3) {
- $('tr[id="approver3"]').show();
- $('tr[id="approver1"]').show();
- $('tr[id="approver2"]').show();
- $('tr[id="approver4"]').hide();
- returnval = false;
- } else if (document.getElementById("txtlev").value == 4) {
- $('tr[id="approver4"]').show();
- $('tr[id="approver1"]').show();
- $('tr[id="approver2"]').show();
- $('tr[id="approver3"]').show();
- returnval = false;
- }
- return returnval;
- }
- </script>
- <script type="text/javascript" src="JS File Mentioned above/dynamic.js"></script>
- </head>
- <body>
- <div id="leavefrom">
- <table id="leavefields">
- <tr>
- <td>Level of approval</td>
- <td> <select id="txtlev" style="width: 99%; height: 90%" onmousedown="this.value='';" onchange="jsFunction(this.value);">
- <option value=0>Select</option>
- <option value=1>1</option>
- <option value=2>2</option>
- <option value=3>3</option>
- <option value=4>4</option>
- </select></td>
- </tr>
- <tr>
- <td width="3" nowrap>Employee Name </td>
- <td> <input type="text" id="empname"></td>
- </tr>
- <tr>
- <td>Employee id</td>
- <td><input type="text" id="empid"></td>
- </tr>
- <tr id="approver1" style="display:none">
- <td>Approver1</td>
- <td>
- <div id="peoplePickerDiv1"></div>
- </td>
- </tr>
- <tr id="approver2" style="display:none">
- <td>Approver2</td>
- <td>
- <div id="peoplePickerDiv2"></div>
- </td>
- </tr>
- <tr id="approver3" style="display:none">
- <td>Approver3</td>
- <td>
- <div id="peoplePickerDiv3"></div>
- </td>
- </tr>
- <tr id="approver4" style="display:none">
- <td>Approver4</td>
- <td>
- <div id="peoplePickerDiv4"></div>
- </td>
- </tr>
- <tr>
- <td><input type='button' id='id1' value='Submit' onclick="GetUserId();" /></td>
- <td><input type='button' value='Cancel' id='btn' onclick="cancel();" /></td>
- </tr>
- </table>
- </div>
- </body>
- </html>
Employeename, Empid, Approver1, Approver2, Approver3, Approver4 are the field columns of that List.
Step 1
In HTML file.
Include jquery-1.8.3.js,
ui/1.10.0/jquery-ui.js,
http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js ,
moment.js ,
sppeoplepicker.min.js ,
sppeoplepicker.js
And also, store the above JS file as .js format and include in HTML.
Step 2
In Document.ready function, intialise all the people pickers. For example -
$("#peoplePickerDiv1").spPeoplePicker();
Step 3
Based on the option values, I am hiding and showing textbox
- if(document.getElementById("txtlev").value==0)
- $('tr[id="approver1"]').hide();
- $('tr[id="approver1"]').show();
Create necessary Div tag and buttons to append people picker as shown in the above HTML file.
Step 4
In JS part
In JS part
For Loop for all Divs
- $("div[class*='sp-peoplepicker-topLevel']").each(function()
It checks whether the Div box is empty or not..
- if($(this).find("span[class='ms-entity-resolved']").text().length>0
Step 5
Based on the div value, the below code retrieves the Id of Users(people picker) Eg : SpTestuser1, the id is 10
- var endPointURLToGetUseID =_spPageContextInfo.webAbsoluteUrl+"/_api/web/siteusers?$select=Title,ID&$filter=Title eq '"+$(this).find("span[class='ms-entity-resolved']").text()+"'";
Step 6
- function callSuccessMethod(data, request) {
- $.each(data.d.results, function(key, val) {
- var GetId = val.Id;
- user.push([GetId]);
- });
Based on results of Val.id, we push the values of GetId into some variable user array I created (Push Function acts by using moment.js)
Step 7
Update the values in the List using below code.
- ListItem.set_item('Employeename', Ename);
- ListItem.set_item('Empid', EmpID);
- if (user.length == 4) {
- ListItem.set_item('Approver1', user[1][0]);
- ListItem.set_item('Approver2', user[1][0]);
- ListItem.set_item('Approver3', user[2][0]);
- ListItem.set_item('Approver4', user[3][0]);
- ListItem.update();
- }
Step 8
The below code is used for validation...
- if (document.getElementById("txtlev").value == 2 && document.getElementById("peoplePickerDiv2_TopSpan_HiddenInput").value == "" || document.getElementById("peoplePickerDiv2_TopSpan_HiddenInput").value == "[]") {
- alert("Please Specify Approver2");
- returnval = false;
- }

smaran manjulaPosted Apr 30, 2020, 3:11 PM
Where moment.js file