I want to display a default Informative text in JSF/Primefaces inputText component.
I'm aware that setting the default value to BeanProperty in ManagedBean will work,but I don't want that.
Please suggest any JQuery tweaks,If possible.
Redirect me to right Question if this question is Duplicate.
Primefaces provides a placeholder
attribute in its latest versions which you can use for p:inputText
. Also, there is a p:watermark
component which creates a JS based solution for legacy browser compatibility. So you don't definitely need to set a default value into the backing bean. Just use one of the following solutions:
<h:outputLabel value="Search: "/>
<p:inputText id="search_input_id" value="#{watermarkBean.keyword}"
required="true" label="Keyword" placeholder="search" />
For legacy browsers:
<h:outputLabel value="Search: "/>
<p:inputText id="search_input_id" value="#{watermarkBean.keyword}"
required="true" label="Keyword" />
<p:watermark for="search_input_id" value="search" />
Also if using JSF 2.2, you can use its passthrough attributes. Adding xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
namespace to your page, you can achieve in the following way, both for JSF h:inputText
and Primefaces p:inputText
:
<h:inputText value="#{watermarkBean.keyword}"
pt:placeholder="search" />
Or wrapping it into the tag with a TagHandler:
<h:inputText value="#{watermarkBean.keyword}">
<f:passThroughAttribute name="placeholder"
value="search"/>
</h:inputText>
Which creates HTML 5 based input with placeholder
attribute:
<input placeholder="search">
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With