You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Behaviors实现JIRA中级联列表2随级联列表1选项设为必填?

JIRA Behaviors 级联列表必填控制问题解决

你的代码失效的核心原因是:级联字段的value返回的是CascadingOption对象,不是纯字符串,直接用字符串对比会永远返回false,导致无法正确设置必填状态。

修正后的代码

根据你的需求(选择级联列表1的指定父选项时,级联列表2设为必填),调整后的代码如下:

def fieldA = getFieldByName('BI Reporting & Analytics Request Categories') // 级联列表1
def fieldC = getFieldByName('Reporting') // 级联列表2

// 触发必填的级联列表1父选项名称
def triggerOption = 'Reporting'

def valueA = fieldA.value
def isFieldCRequired = false

if (valueA) {
    // 逻辑:只要父选项是triggerOption,无论是否选择子选项都触发必填
    // 如果需要仅当选中父选项本身(未选子选项)时触发,注释下面一行,启用下一行
    isFieldCRequired = valueA.parentOption ? valueA.parentOption.value == triggerOption : valueA.value == triggerOption
    // isFieldCRequired = !valueA.parentOption && valueA.value == triggerOption
}

fieldC.setRequired(isFieldCRequired)

关键说明

  1. 级联字段值的类型:CascadingOption对象包含两个核心属性:
    • value:当前选项的名称
    • parentOption:如果是子选项,返回对应的父CascadingOption对象;如果是父选项,返回null
  2. 空值判断:增加if (valueA)避免用户未选择任何选项时出现空指针异常
  3. 两种判断逻辑:
    • 第一种逻辑:只要父选项匹配,不管有没有选子选项都触发必填
    • 第二种逻辑:仅当用户只选中父选项(未选择子选项)时才触发必填,根据你的实际需求切换

调试技巧

如果还是有问题,可以在代码中添加日志打印,查看字段值的实际结构:

log.debug("fieldA value: ${valueA}, class: ${valueA.getClass()}")
log.debug("parent option: ${valueA?.parentOption?.value}")

在JIRA的日志中查看输出,确认选项名称是否匹配。

内容的提问来源于stack exchange,提问作者Drish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:15:43