Oracle Apex交互式网格动态动作客户端JS表达式编写求助
Oracle Apex 交互式网格动态动作 JavaScript 实现方案
配置与代码实现
- 动态动作触发设置:将触发条件设为GLOBAL_ATTRIBUTE_CHAR21字段变更,事件类型选择「Change」,作用域指定为「Interactive Grid」。
- 客户端 JavaScript 代码(直接写在动态动作的「执行 JavaScript 代码」动作中):
// 获取当前字段值 var num14Value = apex.item('GLOBAL_ATTRIBUTE_NUMBER14').getValue(); var char21Value = apex.item('GLOBAL_ATTRIBUTE_CHAR21').getValue(); // 核心逻辑判断 if (num14Value === "VS") { // 检查是否包含'B'或'-' if (!(/[B-]/.test(char21Value))) { apex.message.alert('输入值必须包含"B"或"-"'); // 若需阻止保存动作,添加下方代码 apex.event.preventDefault(); } }
代码说明
- 使用
apex.item().getValue()是 Oracle Apex 官方推荐的客户端字段值获取方式,确保在交互式网格环境下的兼容性。 - 正则表达式
/[B-]/用于匹配包含'B'或'-'的字符串,test()方法返回布尔值快速判断是否符合要求。 apex.message.alert()是 Apex 标准弹窗方法,替代原生alert()可保持界面风格统一。- 若需要在触发警告时阻止表单提交,保留
apex.event.preventDefault()即可。
验证场景
- 合法值:
CTXY-L(含'-')、LDLBBY(含'B')→ 无警告,正常执行保存。 - 非法值:
DCXDDY(不含'B'和'-')→ 弹出警告,按需阻止保存。
内容的提问来源于stack exchange,提问作者Oracle Apex Developer
相关产品推荐
相关产品推荐

