嗨我需要关闭selectOneMenu
素数的自动完成功能,但没有这样的属性。我们在inputText
和其他一些组件的primeface中有这个属性。
如何在用户刷新页面时关闭自动完成功能或仅选择默认值。
我试过这样。
<p:selectOneMenu value="#{myBean.myVar}" autocomplete="off" id="selectMenu">
<f:selectItems value="#{myBean.nameList}" var="cat"
itemLabel="#{cat.name}"
itemValue="#{cat.name}" />
</p:selectOneMenu>
P.S。我正在使用Liferay JSF Portlet
请参考我的问题--- After refresh I get old values in my page
我在IE和Chrome中检查了这个问题,它在那里工作得很好。我只在Firefox中遇到这个问题。
答案 0 :(得分:0)
我建议您在刷新页面时首先更新或清除 myBean.myVar 值。 这将解决问题。 并且您将无法获得默认的选定值。
答案 1 :(得分:0)
我知道这是一篇非常古老的帖子,但我今天遇到了这个问题,我认为即使我只使用JSF而不是Primeface,我写的内容对某些人也有用。
使用JSF 2.2,您可以使用<f:passThroughAttribute>
标记添加属性(请参阅this answer)。
在我的情况下,我必须将属性直接放在h:form
元素上,因为浏览器(Chrome 48)似乎忽略autocomplete
元素上的select
(可能是Chrome错误) ?)。
<h:form>
<f:passThroughAttribute name="autocomplete" value="off" />
...
</h:form>
答案 2 :(得分:0)
xonya永远不会太晚。这是正确答案:
添加:
HttpServletResponse response = (HttpServletResponse)
FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setHeader("Cache-Control", "no-cache, no-store");
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
在XHTML中将此添加到h:form:
<h:form>
<f:passThroughAttribute name="autocomplete" value="off" />
</h:form>
我在Google Chrome中遇到了问题。
再次感谢Xonya。