SharePoint 2013 基于Issue Status下拉值设置条件必填字段的验证方法问询
可行性说明
可以通过SharePoint 2013自带的列表验证设置(Validation Settings)实现该需求。
注意前置操作:先进入列表的字段设置页,把所有原本设为「必填(REQUIRED)」的字段属性全部改为「可选(OPTIONAL)」。因为列表级验证的优先级高于字段级必填校验,如果不取消字段级必填,DRAFT状态下Control ID和Impacted Business留空时会被字段校验直接拦截,无法触发自定义的验证逻辑。
验证公式示例
公式逻辑分为两种分支:
- 当
Issue Status为OPEN或PENDING时,所有字段不能为空 - 当
Issue Status为DRAFT时,仅Control ID和Impacted Business允许为空,其余字段必须填写
以下为示例公式,假设你除了Control ID、Impacted Business之外,其他必填字段为Issue Title、Reporter、Issue Description,你可以根据自己的实际字段列表修改:
=IF( OR([Issue Status]="OPEN", [Issue Status]="PENDING"), AND( NOT(ISBLANK([Control ID])), NOT(ISBLANK([Impacted Business])), NOT(ISBLANK([Issue Title])), NOT(ISBLANK([Reporter])), NOT(ISBLANK([Issue Description])) ), IF( [Issue Status]="DRAFT", AND( NOT(ISBLANK([Issue Title])), NOT(ISBLANK([Reporter])), NOT(ISBLANK([Issue Description])) ), TRUE ) )
公式说明:
- 你可以把
Issue Title、Reporter这些占位字段替换成你自己列表里的其他必填字段,有多少个就加多少个NOT(ISBLANK([你的字段名]))到对应的AND逻辑块里即可 - 公式里的字段名必须和列表里的字段显示名完全一致,包括空格、大小写
- 末尾的
TRUE表示如果Issue Status有其他取值时默认不做拦截,如果你只允许OPEN、PENDING、DRAFT三种状态,可以把TRUE替换成对应校验逻辑
配置步骤
- 进入目标SharePoint列表,点击右上角齿轮设置图标,选择「列表设置」
- 在「常规设置」分类下找到「验证设置」,点击进入配置页
- 将调整好的公式粘贴到「公式」输入框
- 在「用户输入信息无效时显示的消息」框填写提示文案,比如:
提交失败:当Issue Status为OPEN/PENDING时所有字段必须填写;为DRAFT时仅Control ID、Impacted Business可留空,其余字段必须完成填写 - 点击「保存」即可生效
内容的提问来源于stack exchange,提问作者Nina
相关产品推荐
相关产品推荐

