SharePoint 2013 provides useful javascript object called WPQ2FormCtx. That object holds information about List, List Item, DisplayForm, ViewForm, EditForm and NewForm.
For example, list information:
ListData:
As you can see, there is information about ItemAttributes, ItemContentTypeId, ItemContentTypeName and others.
Task from life:
Override postback action in edit/new form, check condition and submit form:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function overrideSubmitAction() { WPQ2FormCtx.PostBackRequired = true; // we override SPClientForms.ClientFormManager.SubmitClientForm SPClientForms.ClientFormManager.SubmitClientForm = function (b) { var a = SPClientForms.ClientFormManager.GetClientForm(b); var res = (a != null && a.SubmitClientForm()); // if the form is not valid, then res===true if (res === true) { return true; } else { var selectedResponsibleManager = $("#wcfLookupControl_KsupPerformerResponsible").val(); var approvalStatus = WPQ2FormCtx.ListData[constant.PortalConstant.Field.KsupSaleApproveStatus.Name]; if (approvalStatus && selectedResponsibleManager) { //Если у позиции оперплана статус согласования равен "Не отправлено" или "Отклонено" if (approvalStatus == "Не отправлено" || approvalStatus == "Отклонено") { var sellerDivisionType = operationalPlanActionHelper.getSellerDivisionTypeByUserId(selectedResponsibleManager); //Если у пользователя, выбранного в качестве ответственного менеджера со стороны подразделения-продавца в позиции //оперплана, в списке «продавцы» в качестве связанного подразделения указано подразделение с признаком «Департамент» if (sellerDivisionType == "Департамент") { if (window.confirm("Отправить позицию оперплана на согласование в дирекцию?")) { //При нажатии запускается процесс согласования позиции оперплана с дирекцией |
As you can see, on line
1 |
var approvalStatus = WPQ2FormCtx.ListData[constant.PortalConstant.Field.KsupSaleApproveStatus.Name]; |
using object WPQ2FormCtx for getting listitem field value.
Postback attaches due presave action:
1 2 3 4 |
function PreSaveAction() { overrideSubmitAction(); var separateSaleValid = portalUtil.validateField( |