在primefaces中将inputtext限制为Y或N

在primefaces中将inputtext限制为Y或N,primefaces,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=

我想把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可以使用,但我想在用户输入值时限制输入,而不是在提交时限制输入。

您也可以使用validator作为用户输入,方法如下:

<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)。非常好。

切换到SelectOne菜单是否合理?然后,您可以向他们显示Y或N,他们不能选择任何其他内容。或者选择OneRadio、selectOneButton、selectBooleanCheckbox、selectOneListbox。@Cagatay Civici、selectBooleanCheckbox要求将true或false作为值,而我希望将Y或N作为值。我的数据库列是char(1),包含Y或N。我将使用selectOneRadio。谢谢@Maco