2017-02-06 1 views
0

Это мой первый вопрос когда-либо в stackoverflow, поэтому, пожалуйста, несите меня, если были ошибки.Какая кнопка была нажата, которая инициировала функцию PreSaveAction в форме редактирования задачи SharePoint?

Мы используем SharePoint Online и хотим иметь валидацию в форме редактирования задачи. Валидация выполняется для кнопок «Одобрено» и «Отклонено» отдельно. Если пользователь нажимает кнопку «Утвержден», он должен проверять поле выбора людей для получения значения, однако, если он нажимает кнопку «Отклонено», то он должен проверять поле комментариев с текстовым редактором комментариев.

На кнопках текущей задачи редактирования формы имеет следующий OnClick событие:

if (!PreSaveItem()) return false; 
 
if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false; 
 
WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ctl34$g_c787a6e1_0aac_4259_aaa9_1ed77297a7ee$ctl00$toolBarTbl$RightRptControls$ctl00$ctl00$diidIOSaveItem", "", true, "", "", false, true))

Решение, которое я попробовал это создать и добавить событие щелчка на кнопках и написать мой jquery (3.1.1). Однако я не могу опубликовать форму, используя вышеупомянутый код WebForm_PostBackOptions. Поэтому я применил функцию PreSaveAction для проверки подлинности SharePoint, которая не позволяет мне иметь отдельные проверки для полей.

Следовательно, как я могу зафиксировать, какая кнопка была нажата, и получить ее значение в функции PreSaveAction, чтобы запустить проверку?

Спасибо и С уважением Танзим

ответ

0

Alhamdulillaah, проблема решена.

Ниже приводится фрагмент кода в случае, если кто-то, в такой же вопрос:

<script language="javascript"> 
 
$(function() 
 
    { 
 
    var butApproved = $("input[value='Approved']"); 
 
    var butRejected = $("input[value='Rejected']"); 
 
    var butSaveName = $("input[value='Save']").attr("name"); 
 
    var optionResult = ""; 
 
     
 
    butApproved.attr("onclick", ""); 
 
    butRejected.attr("onclick", ""); 
 
    
 
    butApproved.attr("onclick", "optionResult='Approved'; if (!PreSaveItem()) return false;if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('" + butSaveName + "', '', true, '', '', false, true))"); 
 
    butRejected.attr("onclick", "optionResult='Rejected'; if (!PreSaveItem()) return false;if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('" + butSaveName + "', '', true, '', '', false, true))"); 
 

 
    }); 
 

 
    function PreSaveAction() 
 
    { 
 
    if (optionResult == "Approved") 
 
    { 
 
     alert("Approved clicked"); 
 
     return false; 
 
    } 
 
    else if (optionResult == "Rejected") 
 
    { 
 
     alert("Rejected clicked"); 
 
     return false; 
 
    } 
 
    else 
 
    { 
 
     alert("Something else happend"); 
 
    } 
 
    return true; 
 
    } 
 
</script>

Танзим

Смежные вопросы