Version: SP2013 enterprise on-prem.
I’m trying to save an item and then redirect based on a drop down from the item form. This works except that edits to the People Picker fields aren’t saved. When I step through the code, this line is returning true: if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false;
which means the next line WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(elementName, "", true, "", newPostBackUrl, false, true));
isn’t executed. Here’s the entire code:
$ (document).ready(function () { var oldPostBackUrl; var currentSourceValue; if ((typeof ($ ("input[title='Workflow Status URL']")[0].value) !== "undefined") && (($ ("input[title='Workflow Status URL']")[0].value) !== "")) { var wfStatusURL = encodeURIComponent($ ("input[title='Workflow Status URL']")[0].value) } var button = $ ("input[id$ =SaveItem]"); var newPostBackUrl; var referrer = location.href; var iD = ""; var parentList = ""; var parentListURL = ""; var str = referrer.split("&"); parentList = str[1].split("="); parentListURL = parentList[1]; button.removeAttr("onclick"); button.click(function () { debugger; var referrer = location.href; var str = referrer.split("&"); var aspForm = document.forms['aspnetForm']; var selIndex = $ ("select[title='Where to proceed']")[0].options.selectedIndex var selection = $ ("select[title='Where to proceed']")[0].options[selIndex].value; if (selection == "Remain on the form") { var elementName = $ (this).attr("name"); var aspForm = $ ("form[id=aspnetForm]"); oldPostBackUrl = aspForm[0].action; currentSourceValue = GetUrlKeyValue("Source", true, oldPostBackUrl); newPostBackUrl = oldPostBackUrl.replace(currentSourceValue, encodeURIComponent(str[0])); if (!PreSaveItem()) return false; if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false; WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(elementName, "", true, "", newPostBackUrl, false, true)); } else if (selection == "Workflow Status Page") { if ((typeof ($ ("input[title='Workflow Status URL']")[0].value) !== "undefined") && (($ ("input[title='Workflow Status URL']")[0].value) !== "")) { var elementName = $ (this).attr("name"); var aspForm = $ ("form[id=aspnetForm]"); oldPostBackUrl = aspForm[0].action; currentSourceValue = GetUrlKeyValue("Source", true, oldPostBackUrl); newPostBackUrl = oldPostBackUrl.replace(currentSourceValue, wfStatusURL); if (!PreSaveItem()) return false; if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false; WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(elementName, "", true, "", newPostBackUrl, false, true)); } else { alert("No workflow defined for this ePR"); } } else if ((selection == "ePRv2 Forms") || (selection == "")) { var elementName = $ (this).attr("name"); var aspForm = $ ("form[id=aspnetForm]"); oldPostBackUrl = aspForm[0].action; currentSourceValue = GetUrlKeyValue("Source", true, oldPostBackUrl); newPostBackUrl = oldPostBackUrl.replace(currentSourceValue, parentListURL); if (!PreSaveItem()) return false; if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false; WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(elementName, "", true, "", newPostBackUrl, false, true)); } else if (selection == "Workflow Tasks") { referrer = _spPageContextInfo.webAbsoluteUrl + "/WorkflowTasks"; var elementName = $ (this).attr("name"); var aspForm = $ ("form[id=aspnetForm]"); oldPostBackUrl = aspForm[0].action; currentSourceValue = GetUrlKeyValue("Source", true, oldPostBackUrl); newPostBackUrl = oldPostBackUrl.replace(currentSourceValue, (encodeURIComponent(referrer))); if (!PreSaveItem()) return false; if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false; WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(elementName, "", true, "", newPostBackUrl, false, true)); } });
});