InputText组件中的默认文本(占位符)

在此处输入图像描述

我想在JSF / Primefaces inputText组件中显示默认的信息性文本。

  • 当用户单击“文本”字段时,此文本应消失。
  • 当他在没有打字的情况下点击外面时出现。
  • 如果用户提交的表单没有任何值,则不应将此默认值设置为Bean的属性。

我知道在ManagedBean中将默认值设置为BeanProperty会有效,但我不希望这样。
如果可能的话,请建议任何JQuery调整。
如果此问题是重复,请将我重定向到问题。

Primefaces在其最新版本中提供了一个placeholder属性,您可以将其用于p:inputText 。 此外,还有一个p:watermark组件,它为传​​统的浏览器兼容性创建了一个基于JS的解决方案。 因此,您无需在支持bean中设置默认值。 只需使用以下解决方案之一:

   

对于旧版浏览器:

    

此外,如果使用JSF 2.2 ,您可以使用其passthrough属性。 将xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"命名空间添加到您的页面,您可以通过以下方式实现,对于JSF h:inputText和Primefaces p:inputText

  

或者使用TagHandler将其包装到标记中:

    

这使用placeholder属性创建基于HTML 5的输入:

  

一个jQuery调整将是:

   

您不需要添加额外的组件来仅设置属性,并且您可以批量丰富输入(如果需要)。