这是我在stackoverflow上的第一个问题,所以如果有任何错误,请耐心等待。
我们正在使用SharePoint Online,并希望对任务编辑表单进行验证。验证分别用于“已批准”和“已拒绝”按钮。如果用户单击“已批准”按钮,则应验证人员选择器字段是否具有值,但是如果他单击“已拒绝”按钮,则应验证注释富文本编辑器框。
在当前的任务编辑表单上,按钮具有以下onclick事件:
20.04.2017
我尝试过的解决方案是在按钮上创建并添加一个click事件并编写我的jquery(3.1.1)。但是,我无法使用上面提到的WebForm_PostBackOptions代码发布表单。因此,我接触了SharePoint本机验证PreSaveAction函数,该函数不允许我对字段进行单独的验证。
因此,我如何捕获单击哪个按钮并在PreSaveAction函数中获取其值以运行验证?
谢谢你 问候 坦兹姆
答案 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>
坦兹姆