2013-04-05 51 views
1

我需要一個輸入組件才能接受數字,如[0-9]。我已經通過服務器端轉換/驗證實現了這一點:如何在h:inputText中的按鍵事件中限制字符

<h:inputText ... converter="javax.faces.Integer" /> 

但是,它仍然允許其他字符進入UI。如何在keypress事件期間防止這種情況發生?

<h:inputText ... converter="javax.faces.Integer" onkeypress="...help?" /> 
+0

這不完全是一個JSF問題,而只是JavaScript。在這種情況下,這個問題是一個愚蠢的:[限制文本字段僅限數字的最佳方式?](http://stackoverflow.com/questions/3764821/best-way-to-restrict-a-text-field- to-numbers-only) – BalusC 2013-04-05 13:10:43

+0

@BalusC謝謝你,先生。 – 2013-05-01 05:28:39

回答

0

試試這個

<h:inputText id="presentReading" styleClass="labelfont" label="Present Reading" converter="javax.faces.Integer"value="#{FuelFilling1.presentReading}" maxlength="10"> 
    <f:validateLongRange minimum="1" maximum="10"/> 
</h:inputText> 

或者,你可以使用jQuery或Javascript來驗證對按鍵的客戶端。你可以使用JQuery嗎?

0

我會建議堅持jsf驗證。

<f:convertNumber integerOnly="true" type="number" /> 

如果您不想將表單提交到獲取響應,您可以使用ajax實時驗證。使用javascript/jQuery做keypress驗證可以做到,但是除非你有這麼做的充分理由,否則會很痛苦。