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

APEX 22.2.4:自动完成文本字段选中值/失焦时执行代码的方法

APEX 22.2.4 自动完成文本字段两类场景的触发实现方案

针对你提到的两个场景,可通过以下方式实现代码触发:

场景一:用户从LOV下拉列表选中值时触发

  • 创建新动态操作,命名为「LOV选中值时执行代码」
  • 事件类型选择Custom,事件名称填写 apexafterselect
  • 选择器类型选Item,指定你的自动完成文本字段
  • 在「True」分支添加「Execute JavaScript Code」动作,写入需要执行的业务代码

场景二:用户未选择LOV值就离开字段时触发

需要结合blur事件+值有效性判断来实现:

  • 创建新动态操作,命名为「离开字段且未选LOV值时执行代码」
  • 事件类型选择Blur,选择器类型选Item,指定目标字段
  • 添加条件:类型选JavaScript Expression,输入判断逻辑(判断当前值不在LOV选项中):
    // 获取当前自动完成组件的LOV选项文本集合
    var lovOptionTexts = $('#' + this.triggeringElement.id)
        .autocomplete('widget')
        .find('li')
        .map(function(){ return $(this).text().trim(); })
        .get();
    // 返回是否未选中LOV值的判断结果
    return !lovOptionTexts.includes($(this.triggeringElement).val().trim());
    
  • 在「True」分支添加「Execute JavaScript Code」动作,写入对应的处理代码

进阶优化:基于LOV实际值判断(而非显示文本)

如果需要基于LOV的实际返回值(而非界面显示文本)做判断,可先在页面加载时缓存LOV数据:

  • 创建页面加载时的动态操作,执行以下JS代码(替换成你的项ID):
    apex.server.plugin(
        apex.util.plugin.getPlugin('APEX.LOV', 'fetch'),
        { pageItems: '#P1_YOUR_AUTOCOMPLETE_ITEM' },
        { dataType: 'json' }
    ).done(function(data){
        // 将LOV的实际值存储到全局变量
        window.lovActualValues = data.items.map(function(item){ return item.value; });
    });
    
  • 然后将场景二的条件表达式替换为:
    return !window.lovActualValues.includes($(this.triggeringElement).val().trim());
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:32:52