当我将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
.