Oracle APEX:如何在密码输入框触发checkPassword()函数
在Oracle APEX中触发自定义密码校验函数的实现步骤
第一步:存放自定义JavaScript代码
把你的checkPassword()函数放在页面级的JavaScript区域:- 打开目标页面(P99)的编辑界面
- 找到页面属性 -> JavaScript -> 函数和全局变量声明
- 粘贴你的函数代码,示例如下:
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; }
第二步:为密码字段添加触发事件
有两种实用方式触发校验:动态行为(推荐)
- 进入页面的动态行为区域,点击创建
- 事件选择失去焦点(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"); } - 保存动态行为即可
字段HTML属性绑定
- 打开
P99_NEW_PASSWORD字段的编辑界面 - 找到高级 -> HTML属性,添加事件绑定:
实时校验可替换为onblur="checkPassword(this.value);"onkeyup="checkPassword(this.value);" - 该方式适合简单触发,复杂反馈推荐用动态行为
- 打开
第三步:提交时强制校验(可选)
若需确保提交前必过校验,可添加页面级验证:- 进入页面的验证区域,点击创建
- 选择JavaScript验证类型
- 输入验证代码:
const password = apex.item('P99_NEW_PASSWORD').getValue(); return checkPassword(password) ? null : "密码不符合复杂度要求"; - 设置触发时机为提交
内容的提问来源于stack exchange,提问作者codename_zoe
相关产品推荐
相关产品推荐

