【问题标题】:Disallow negative numbers in h:inputText不允许在 h:inputText 中使用负数
【发布时间】:2016-06-12 16:06:47
【问题描述】:

如果输入了 -ve 值,我想应用验证。我可以使用以下标签和属性来做到这一点:

<h:inputText id="MyPrice" validatorMessage="negatieve prijs niet toegestaan">

    <f:convertNumber type="number"
                     groupingUsed="true"
                     locale="nl_NL"
                     maxFractionDigits="2"
                     minFractionDigits="2"/>

    <f:validateLongRange minimum="0"/>
<h:inputText>

<rich:message for="MyPrice"/>

使用它,我可以通过以下输入成功验证 -ve 和 +ve 值: 正确:[我遵循荷兰数字系统,其中“,”被视为“。”例如,要写 0.55,我们需要写 0,55),这是我使用 &lt;f:convertNumber&gt; 完成的。

100
10.25
10,98
-100
-10.25
-10,98
0.55

但是当我输入 -0,55 时,验证不起作用。请提供解决方案以验证我何时输入以 -0.xx 开头的 -ve 值。

【问题讨论】:

标签: validation jsf richfaces


【解决方案1】:

您的验证器不正确 - 价格不是 Long。改成

<f:validateDoubleRange minimum="0" />

【讨论】:

  • 再说一次,我有一个担心。
  • 当我输入 -11 或 -0.54 或 -0,54 时,它会起作用并验证为负数。此外,当我输入 abc00 时,它会验证它,因为“abc00”不是数字。但是当我输入 00abc 时,它接受/将其设为 00,00。我想为 00abc 之类的输入显示“它不是有效数字”的验证消息。即,如果我的输入包含字母,我想显示验证消息。我不能使用 Validateregex,因为它未能通过我的负数验证。请提出建议。
  • 您可以从f:convertNumber 更改为&lt;f:converter converterId="javax.faces.Double" /&gt; 或&lt;h:inputText converter="javax.faces.Double"
  • Vasil,我猜改成 convertNumber 会错过 NL 数制转换。我试过这样做但失败了。 inputText 或 f:validateDoubleRange 是否还有其他属性可以避免输入 0abc 类型的输入。
  • 您是否尝试过第二个选项&lt;h:inputText converter="javax.faces.Double" /&gt;?
猜你喜欢
  • 2019-04-22
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 2017-04-29
  • 2020-10-08
  • 1970-01-01
  • 2023-02-26
相关资源
最近更新 更多