【问题标题】:How to restrict an input to a variable amount of numbers only with PrimeFaces inputMask element如何仅使用 PrimeFaces inputMask 元素将输入限制为可变数量的数字
【发布时间】:2012-01-13 09:27:53
【问题描述】:

我需要定义类似于这个正则表达式的东西:

[0-9]{1, 5}

在 PrimeFaces <inputMask> 元素上:

<p:inputMask mask="regexGoesHere" value="#{someBean.val}"/>

我查看了 PrimeFaces 展示,但不知道该怎么做。

那么除了 JavaScript 之外,有没有人知道如何以任何方式做到这一点?

我并不完全在寻找&lt;inputMask&gt; 的解决方案,任何会限制我在客户端输入中输入字母的东西都可以。

谢谢

【问题讨论】:

    标签: jsf primefaces


    【解决方案1】:

    如果你也想或需要限制长度,你可以这样做:

    <p:inputMask 
       mask="9?9999"
       maxlength="5"
       slotChar=" "
       value="#{someBean.val}" />
    

    其中用户只能输入 1 到 5 位数字,或以下为四位数字等等

    <p:inputMask 
       mask="9?999"
       maxlength="4"
       slotChar=" "
       value="#{someBean.val}" />
    

    PrimeFaces 5.1 之前:使用 placeHolder 代替 slotChar (Issue 7324)。

    【讨论】:

    • 这些信息通常可以在 PrimeFaces 文档中找到。
    【解决方案2】:

    以下Masked Input Plugin是Primefaces使用的原始jquery插件,你可以找到更多关于它的使用信息,还有几个p:input-mask代码示例在这个PDFPrimeFaces: More Input Elements看页面24

    【讨论】:

    • PrimeFaces:更多输入元素链接已损坏。
    • @SubodhJoshi ,链接已修复
    • 感谢您的快速修复。
    【解决方案3】:
    PrimeFaces Extensions 中的

    KeyFilter 看起来完全符合您的需要: http://fractalsoft.net/primeext-showcase-mojarra/views/keyFilter.jsf

    根据文档和示例,它由正则表达式驱动,并且完全按照应有的方式运行:阻止键入未传递给正则表达式的内容的能力。

    【讨论】:

      【解决方案4】:

      试试这个:

      <p:inputMask maxlength="5">
              <pe:keyFilter regEx="/[\d]/" />
      </p:inputMask>
      

      maxlength : 将字符数限制为最大 5 正则表达式:仅在按键时授权小数字符

      注意:

      【讨论】:

      • 问题中没有任何内容表明 OP 正在使用 PrimeFaces 扩展。因此,如果没有用文字清楚地阐述解决方案,这个“试试这个”的答案是令人困惑且毫无价值的。
      • 你对@BalusC 的评论很粗鲁。我编辑了我的答案,所以
      • 我只关心 Stack Overflow 的质量,与那些发布“试试这个”答案的人相反,没有教/解释任何东西(无法教/解释是一个强烈的暗示,你实际上自己也不完全明白)。教如何钓鱼而不是直接给鱼。否则,世界最终只会有不会教钓鱼的人。如果你觉得这很粗鲁,那就太可悲了。
      • 好答案...但解决方法没有必要低分
      【解决方案5】:

      您可以使用验证器。或者验证范围并定义最小值和最大值。

      【讨论】:

      • validaterange 是属性还是元素还是什么?如果验证器是指服务器端验证,我已经通过 javax.validate 注释使用了休眠验证器,但我想限制用户在 clinet 上仅按数字键。
      猜你喜欢
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      • 2015-05-11
      相关资源
      最近更新 更多