如何将输入文本设置为必需,而不会影响Primefaces中的输出标签



当我将inputText设置为required时,我与inputText关联的outputLabel会自动添加一个星号。如何防止出现星号?

<p:outputLabel value="Target Species" for="idInputText" />  
<p:inputText id="idInputText" required="true" value="#{controller.string}"/>

我正在使用PrimeFaces 4.0

我建议使用普通的JSF <h:ouputLabel… />

<h:outputLabel value="Target Species" for="idInputText" />  
<p:inputText id="idInputText" required="true" value="#{controller.string}"/>

这将删除星号,但保持标签与输入元素正确关联。这对于辅助功能非常重要。

不确定这是否也适用于 4,但它适用于 PrimeFaces 5.3:只需添加 indicateRequired="false" .所以:

<p:outputLabel value="Target Species"
               for="idInputText"
               indicateRequired="false"/>  
<p:inputText id="idInputText"
             required="true"
             value="#{controller.string}"/>

另一种选择是使用 css 隐藏asterisk

.ui-outputlabel-rfi { display: none; }
然后,标签

仍将与输入关联,如果您愿意,您仍然可以使用标签提供程序:

http://cagataycivici.wordpress.com/2011/02/11/label-provider-for-jsf-input-components/

indicateRequired="true"

例如:

<p:inputText value="#{bean.firstName}" indicateRequired="true" required="true" requiredMessage="Name is required"/>
<p:outputLabel value="Target Species" for="idInputText" />  
<p:inputText id="idInputText" required="true" value="#{controller.string}"/>

在您的代码中,您专门为inputText设置该标签,这将具有asterisk

outputLabel中删除"for"。它应该看起来像:

 <p:outputLabel value="Target Species" />  

现在,您将不会有asterisk.

最新更新