【问题标题】:Task.Json triggers validation on invisible only fieldsTask.Json 仅在不可见字段上触发验证
【发布时间】:2018-09-30 17:05:31
【问题描述】:

我正在尝试创建 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 字段隐藏时的问题,仍然尝试验证并失败。如何确保只有在字段可见时才对其进行验证?

【问题讨论】:

    标签: azure-devops azure-pipelines-build-task


    【解决方案1】:

    几个选项:

    • 为输入设置默认值
    • 更新正则表达式以在开头包含 ^$| 以允许空值('require':true 将处理必要性)

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

    从文档看来,即将推出的 when 子句将指示规则集何时触发,我想这可能会导致当前不需要的行为。

    另见:

    【讨论】:

    • 因为我不能使用默认值,所以我使用了正则表达式更改。使用 isIpV4Address 的问题是它再次检查是否为空并抛出错误。
    猜你喜欢
    • 2018-10-03
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 2018-07-31
    • 2020-06-09
    • 1970-01-01
    相关资源
    最近更新 更多