单击了哪个按钮在SharePoint任务编辑表单上启动了PreSaveAction功能?

时间:2017-02-06 12:39:08

标签: jquery sharepoint sharepoint-2013 sharepoint-online

这是我在stackoverflow上的第一个问题,所以如果有任何错误,请耐心等待。

我们正在使用SharePoint Online,并希望对任务编辑表单进行验证。验证分别用于“已批准”和“已拒绝”按钮。如果用户单击“已批准”按钮,则应验证人员选择器字段是否具有值,但是如果他单击“已拒绝”按钮,则应验证注释富文本编辑器框。

在当前的任务编辑表单上,按钮具有以下onclick事件:

20.04.2017

我尝试过的解决方案是在按钮上创建并添加一个click事件并编写我的jquery(3.1.1)。但是,我无法使用上面提到的WebForm_PostBackOptions代码发布表单。因此,我接触了SharePoint本机验证PreSaveAction函数,该函数不允许我对字段进行单独的验证。

因此,我如何捕获单击哪个按钮并在PreSaveAction函数中获取其值以运行验证?

谢谢你 问候 坦兹姆

1 个答案:

答案 0 :(得分:1)

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>

坦兹姆