gpt4 book ai didi

javascript - Primefaces inputMask 只接受十六进制

转载 作者:行者123 更新时间:2023-11-29 10:55:52 29 4
gpt4 key购买 nike

我在将 primefaces 从 6.2.5 更新到 7.0.4 时遇到了一个可怕的问题。在我使用 inputMask 之前像这样:

<p:inputMask id="input" value="#{bean.inputs.id}" mask="^^ ^^ ^^ ^^ ^^"
requiredMessage="#{label.lblRequired}" >
<f:validator validatorId="Validator"/>
</p:inputMask>

还有一个 javascript 部分,我在其中定义了“^”的用法

$.mask.definitions['^'] = '[A-Fa-f0-9]';

在 primefaces 7.0.4 中我不能再使用这个模式了,你可以在这个提交中看到:Link to primefaces github .另外,如果我使用这种方式,没有错误,但该值一直为空,但在网页上以正确的方式填充。

我的问题是是否有任何其他方法可以将正则表达式添加到我输入的每个字段?或者有没有我遗漏的模式

我试过的是:

  1. 添加<f:validateRegex pattern="[regex]"/> --> 不好
  2. 添加<p:keyFilter regEx="[regex]" /> --> 只处理 inputText
  3. 尝试为每个“^”添加正则表达式 --> 不好

最佳答案

你是对的,它在 PrimeFaces 7.0 中被这个安全修复程序破坏了:https://github.com/primefaces/primefaces/issues/3234

修补此安全漏洞的开发人员在该线程中发表评论。

jquery.maskedinput lets you define your own rules aka mask definitions, e.g. ~ can be defined to be mapped to + or -. Example from https://github.com/digitalBush/jquery.maskedinput

jQuery(function($){    
$.mask.definitions['~']='[+-]';
$("#eyescript").mask("~9.99 ~9.99 999");
});

However, PrimeFaces does not seem to implement this feature. So I ignored it in my commit.

看来您应该对该错误单发表评论,说它导致了回归问题。

2019 年 9 月 2 日更新:已针对 PF 7.0.8 和 7.1 修复此问题:https://github.com/primefaces/primefaces/issues/5105

关于javascript - Primefaces inputMask 只接受十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57523231/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com