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

JIRA Behaviours选择问题类型时即时设自定义字段必填的脚本修正

问题原因

原有脚本无法实时生效的核心问题是getIssueContext().getIssueType()读取的是页面初始加载或工单已持久化存储的问题类型值,没有监听问题类型下拉框的实时选择变更,切换选项时脚本不会自动执行,因此只有提交更新后字段状态才会刷新。

修正代码

以下脚本可实现切换问题类型后实时更新字段状态,无需提交即显示必填红星,支持同时配置多个自定义字段:

// 声明需要控制的自定义字段,多个字段直接在列表内追加即可
def targetCustomFields = [
    getFieldById("customfield_17914"),
    // 第二个自定义字段参考下方格式添加
    // getFieldById("customfield_你的第二个字段ID")
]
// 获取问题类型表单字段,读取实时选择值
def issueTypeSelect = getFieldById("issuetype")
// 提取当前选中的问题类型名称/ID,不要使用上下文缓存的旧值
String selectedIssueTypeName = issueTypeSelect.value?.name
// 批量处理目标字段状态
targetCustomFields.each { field ->
    if (selectedIssueTypeName == "Epic") {
        field.setHidden(false)
        field.setRequired(true)
    } else {
        // 非Epic场景下重置字段状态,避免逻辑残留
        field.setRequired(false)
        // 若非Epic场景不需要隐藏字段,可删除下一行
        field.setHidden(true)
    }
}
配置要点
  • 在Behaviours的触发字段配置中,必须同时勾选*问题类型(Issue Type)*字段,仅绑定自定义字段时,切换问题类型不会触发脚本执行
  • 若你的JIRA是多语言环境,建议使用问题类型ID代替名称做匹配判断,避免多语言翻译导致匹配失效,示例判断逻辑:if (issueTypeSelect.value?.id == "10000")(可在问题类型管理页面查看对应类型的ID)
  • 若非Epic场景下自定义字段需要保持显示,直接删除代码中field.setHidden(true)行即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:06:26