Task.Json 触发对不可见字段的验证

Task.Json triggers validation on invisible only fields

我正在尝试创建 Azure DevOps Pipelines 自定义扩展。我有一个 task.json 字段在某些条件下可见。

例如:

 {
  "name": "actions",
  "type": "picklist",
  "label": "Actions",
  "defaultValue": "Select",
  "required": true,
  "helpMarkDown": "Select an Action from the dropdown as per your requirement.",
  "options": {
    "New": "Add",
    "Delete": "Delete"
  }
},

{
  "name": "backEndIPAddress",
  "type": "string",
  "label": "IP Address",
  "required": true,
  "defaultValue": "",
  "helpMarkDown": "",
  "visibleRule": "actions = New",
  "validation": {
    "expression": "isMatch(value,'^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?){0,15}$','IgnoreCase')",
    "message": "Invalid IP Address. Please try again!"
  }
} 

隐藏IPAddress字段时,仍然尝试验证失败的问题。如何确保字段只有在可见时才被验证?

几个选项:

  • 设置输入的默认值
  • 更新正则表达式以在开头包含 ^$| 以允许空值('require':true 将满足要求)

请记住,应该有一个默认的 isIpV4Address(value: string) 函数,这样您就不必指定正则表达式。

从文档来看,似乎有一个即将到来的 when 子句,它将规定何时应触发规则集,我想这可能会导致当前不需要的行为。

另请参阅: