在inputface中将inputtext限制为Y或N.

时间:2012-07-18 11:19:58

标签: primefaces

我想将inputText中的输入限制为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 个答案:

答案 0 :(得分: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" />

我认为你会以这种方式解决你的问题。 (您可能需要为[Y N]更改[Y N] *,因为我不确定*)

然而,在我的应用程序中,我使用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)。效果很好。