2012-07-18 50 views
0

我想將inputText中的輸入限制爲Y或N.以下是我的想法。這是正確的方式或更好的方式是可能的嗎?在primefaces中限制輸入文本爲Y或N

<p:inputText value="#{myBean.field}" id="myID" title="Enter Y or N" 
    onkeypress ="if(!(event.keyCode == 89 || event.keyCode == 78)) event.keyCode=null;" /> 

<p:tooltip for="myID" showEvent="focus" hideEvent="blur" /> 

validateRegex可以使用,但我想限制輸入爲用戶輸入的值,而不是提交。

+1

您切換到SelectOneMenu是否合理?然後,你可以向他們展示Y或N,他們不能選擇其他任何東西。 – SteveS 2012-07-18 12:26:31

+2

或selectOneRadio,selectOneButton,selectBooleanCheckbox,selectOneListbox。 – 2012-07-18 12:31:12

+0

@Cagatay Civici,selectBooleanCheckbox需要true或false作爲值,我想Y或N作爲值。我的數據庫列是char(1),持有Y或N. – rags 2012-07-18 12:43:33

回答

2

您可以使用驗證器作爲用戶輸入過,這種方式:

<p:inputText id="idfield" value="#{myBean.field}" 
       validatorMessage="Only Y or N"> 
       <f:validateRegex pattern="[Y N]*" /> 
       <p:ajax update="msg" event="keyup" /> 
      </p:inputText> 
      <p:message for="idfield" id="msg" display="icon" /> 

我想你會解決你的問題呀。 (您可能需要更改[YN] *爲[YN]因爲我不知道這一點*)

然而,在我的應用我用,爲Y或N,這樣的:

<p:selectOneRadio id="sor" 
value="#{myBean.value}"> 
<f:selectItem itemLabel="Y" itemValue="Y" /> 
<f:selectItem itemLabel="N" itemValue="N" /> 
</p:selectOneRadio> 

在數據庫中也使用char(1)。很棒。

+0

我將使用selectOneRadio。感謝@Maco – rags 2012-07-19 05:49:24