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

Scriptrunner Behaviours:如何在屏幕加载时仅设置一次自定义字段值

Jira Behaviours v5.5.9:仅首次加载设置字段默认值方案

问题痛点

  • 用字段服务器端脚本设置默认值:用户手动清空字段后,脚本会再次触发并重置默认值,导致用户无法选择其他值
  • 用初始化脚本替代:必填字段未填写导致验证失败后,页面重新加载时脚本会再次设置默认值,冲掉用户之前的修改

解决思路

核心是精准识别页面首次加载的场景,避开后续的字段变更、验证回显等操作。利用Behaviours内置的isFirstLoad()方法判断是否是首次打开页面,同时只在字段无值时设置默认值,保证用户后续的修改不会被覆盖。

最终Groovy脚本

import com.atlassian.jira.component.ComponentAccessor
import com.onresolve.jira.groovy.user.FieldBehaviours
import groovy.transform.BaseScript

@BaseScript FieldBehaviours fieldBehaviours

// 目标屏幕名称
final String targetScreenName = 'test'
// 仅在目标屏幕且为首次加载时执行逻辑
if (fieldScreen.name == targetScreenName && isFirstLoad()) {
    def targetField = getFieldById(getFieldChanged())
    // 字段无值时才设置默认值
    if (!targetField.getValue()) {
        targetField.setFormValue("default")
    }
}

关键细节

  • isFirstLoad():Behaviours原生方法,专门用来判断当前请求是否是页面首次加载,能准确排除后续的字段变更、验证失败刷新等场景
  • 多层校验:先锁定目标屏幕,再判断首次加载,最后检查字段无值才设置默认值,完全避免了用户修改后被强制重置的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:45:04