B2C自定义策略ClaimType正则校验时自定义帮助文本未显示问题
问题原因
你在Pattern节点配置的HelpText属性本身没有问题,出现默认的Please match the requested format: Your first name提示并非XML缺少配置属性:该提示是浏览器原生HTML5表单正则校验的默认兜底文案,仅在前端实时校验阶段触发,这个阶段不会读取你在XML中定义的自定义提示,你配置的HelpText只有服务端校验触发时才会正常展示。
自定义提示配置方案
- 方案1:保留前端实时校验,通过自定义JS修改输入框属性
浏览器原生正则校验的提示内容会读取输入框DOM的title属性拼接生成,你只需要在注册页加载的自定义JavaScript中,给givenName、surname对应的输入框添加title="First name must be in English."属性,前端实时校验时就会展示你定义的提示,不会再出现默认文案。使用该方案需要提前在对应页面布局的元数据中开启JavaScript执行权限,否则自定义脚本不会生效。 - 方案2:关闭前端即时校验,强制走服务端规则校验
在注册流程使用的自断言技术配置文件(例如常用的LocalAccountSignUpWithLogonEmail)的Metadata节点下,添加如下配置项:
配置完成后前端不会触发实时正则校验,用户提交表单时会触发服务端的ClaimType规则校验,直接返回你在<Item Key="setting.enforceInputValidationInClient">false</Item>Pattern节点上配置的HelpText内容,也就是预期的First name must be in English.提示。
内容的提问来源于stack exchange,提问作者ATrivino
相关产品推荐
相关产品推荐

