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

2023-11-23

enter image description here

我想在 JSF/Primefaces 中显示默认的信息文本输入文本成分。

  • 当用户单击文本字段时,该文本应该消失。
  • 当他点击外部而不输入任何内容时出现。
  • 如果用户提交的表单没有任何值,则不应将此默认值设置为 Bean 的属性。

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


素面提供了一个placeholder最新版本中的属性,您可以使用p:inputText。另外,还有一个p:watermark组件,它创建基于 JS 的解决方案以实现旧版浏览器兼容性。因此,您不一定需要在支持 bean 中设置默认值。只需使用以下解决方案之一:

<h:outputLabel value="Search: "/>  
<p:inputText id="search_input_id" value="#{watermarkBean.keyword}" 
    required="true" label="Keyword" placeholder="search" />  

对于旧版浏览器:

<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" />

另外如果使用JSF 2.2,您可以使用它的 passthrough 属性。添加xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"命名空间到你的页面,你可以通过以下方式实现,既可以JSF h:inputText and 素面 p:inputText:

<h:inputText value="#{watermarkBean.keyword}"
    pt:placeholder="search" />

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

<h:inputText value="#{watermarkBean.keyword}">
    <f:passThroughAttribute name="placeholder"
        value="search"/>
</h:inputText>

这创造了基于 HTML 5输入与placeholder属性:

<input placeholder="search"> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐