2016-02-29 66 views
0

如果输入-ve值,我想应用验证。我能做到这一点使用下面的标签和属性:不允许h中的负数:inputText

<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和+已经值下面输入: 走到正确的:我在下面的荷兰号系统中“”被视为'。'。例如写0.55,我们需要写0.55),这是由我使用<f:convertNumber>完成的。

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

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

+0

您是否在此检查过? http://stackoverflow.com/questions/19765009/does-fconvertnumber-use-the-right-number-separator-when-using-patterns-to-for/ – pleft

回答

1

您的验证器不正确 - 价格不是Long。将其更改为

<f:validateDoubleRange minimum="0" /> 
+0

同样,我有一个问题。 –

+0

当我输入-11或-0.54或-0.54时,它工作并验证为否定。另外当我输入abc00时,它会验证它为'abc00'不是一个数字。但是当我输入00abc时,它接受/使其成为00,00。我想显示00abc这样的输入的验证消息,即“这不是有效的数字”。即如果我的输入包含alpha,我想显示验证消息。我不能使用Validateregex,因为它没有通过我的负数验证。请建议。 –

+0

您可以从'f:convertNumber'更改为''或'