2016-02-29 84 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'更改爲''或'