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调整将是:
您不需要添加额外的组件来仅设置属性,并且您可以批量丰富输入(如果需要)。