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

Oracle APEX:如何在密码输入框触发checkPassword()函数

在Oracle APEX中触发自定义密码校验函数的实现步骤
  • 第一步:存放自定义JavaScript代码
    把你的checkPassword()函数放在页面级的JavaScript区域:

    1. 打开目标页面(P99)的编辑界面
    2. 找到页面属性 -> JavaScript -> 函数和全局变量声明
    3. 粘贴你的函数代码,示例如下:
      function checkPassword(password) {
        // 自定义密码复杂度校验逻辑
        const minLength = 8;
        const hasUpperCase = /[A-Z]/.test(password);
        const hasLowerCase = /[a-z]/.test(password);
        const hasNumber = /[0-9]/.test(password);
        const hasSpecialChar = /[!@#$%^&*]/.test(password);
        
        return password.length >= minLength && hasUpperCase && hasLowerCase && hasNumber && hasSpecialChar;
      }
      
  • 第二步:为密码字段添加触发事件
    有两种实用方式触发校验:

    1. 动态行为(推荐)

      • 进入页面的动态行为区域,点击创建
      • 事件选择失去焦点(Blur)(离开字段时校验)或按键释放(Key Release)(输入时实时校验)
      • 选择类型为项目,选中P99_NEW_PASSWORD
      • 在动作里选执行JavaScript代码,输入触发逻辑:
        const password = apex.item('P99_NEW_PASSWORD').getValue();
        const isValid = checkPassword(password);
        
        // 校验反馈逻辑
        if (!isValid) {
          apex.message.showErrors([{
            type: "error",
            location: ["inline", "page"],
            pageItem: "P99_NEW_PASSWORD",
            message: "密码不符合要求:至少8位,需包含大小写字母、数字和特殊字符",
            unsafe: false
          }]);
        } else {
          apex.message.clearErrors("P99_NEW_PASSWORD");
        }
        
      • 保存动态行为即可
    2. 字段HTML属性绑定

      • 打开P99_NEW_PASSWORD字段的编辑界面
      • 找到高级 -> HTML属性,添加事件绑定:
        onblur="checkPassword(this.value);"
        
        实时校验可替换为onkeyup="checkPassword(this.value);"
      • 该方式适合简单触发,复杂反馈推荐用动态行为
  • 第三步:提交时强制校验(可选)
    若需确保提交前必过校验,可添加页面级验证:

    1. 进入页面的验证区域,点击创建
    2. 选择JavaScript验证类型
    3. 输入验证代码:
      const password = apex.item('P99_NEW_PASSWORD').getValue();
      return checkPassword(password) ? null : "密码不符合复杂度要求";
      
    4. 设置触发时机为提交

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:34:51