0

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

4

1 回答 1

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)。效果很好。

于 2012-07-18T15:38:46.753 回答