我正在使用标准的sharpoint表单,一旦用户在“状态”下拉列表中选择“已完成”,我就会显示一个跟踪号码。所有这些功能,此时我需要做的是在选择完成后需要跟踪号码。如果我通过sharepoint创建所需的字段,然后尝试隐藏它,sharepoint将不会保存任务:/这是我的代码:
{"profiles": ["real-name":"MArtin43221", "active":true]}
答案 0 :(得分:1)
以下是几个选项:
选项1:列表验证设置
这可以使用SharePoint 2010的列表验证设置以非编程方式完成。 (转到列表设置 - >验证设置。)
您可以添加类似Excel的公式,必须将其解析为true才能使项目有效。
在您的情况下,公式看起来像这样:
=IF([Status]="completed",NOT(ISBLANK([Tracking Number])),TRUE)
选项2:覆盖PreSaveAction()
在JavaScript中,您可以覆盖编辑表单上的PreSaveAction()函数,以便在允许提交表单之前执行编程检查。
在函数中,如果一切看起来不错并且您希望保存通过,则返回true
,或者false
中止保存。
示例:
function PreSaveAction(){
var statusField = SPUtility.GetSPField('Status');
var trackingField = SPUtility.GetSPField('Tracking Number');
var isValid =
statusField.GetValue() != "completed" ||
trackingField.GetValue().length > 0;
if(!isValid){
alert("You must enter a tracking number.");
}
return isValid
}