0

嗨,我需要关闭selectOneMenuprimefaces 的自动完成功能,但没有这样的属性。我们在 primefaces 中inputText为其他一些组件提供了这个属性。

如何在用户刷新页面时始终关闭自动完成功能或只选择默认值。

我试过这样。

<p:selectOneMenu value="#{myBean.myVar}" autocomplete="off" id="selectMenu">
       <f:selectItems value="#{myBean.nameList}" var="cat"
                    itemLabel="#{cat.name}"
                    itemValue="#{cat.name}" />
</p:selectOneMenu>

PS 我正在使用 Liferay JSF Portlet

请参考我的问题---刷新后我的页面中有旧值

我已经在 IE 和 Chrome 中检查过这个问题,它在那里工作正常。我只在 Firefox 中遇到这个问题。

4

3 回答 3

2

我知道这是一篇非常古老的帖子,但我今天遇到了这个问题,我认为即使我只使用 JSF 而不是 Primeface,我所写的内容也可能对某人有用。

使用 JSF 2.2,您可以使用<f:passThroughAttribute>标签添加属性(请参阅此答案)。

在我的情况下,我必须将属性直接放在h:form元素上,因为浏览器(Chrome 48)似乎忽略autocompleteselect元素(可能是 Chrome 错误?)。

<h:form>
    <f:passThroughAttribute name="autocomplete" value="off" />
    ...
</h:form>
于 2016-02-03T14:14:39.797 回答
0

我建议您在刷新页面时首先更新或清除myBean.myVar值。这将解决问题。并且您不会获得默认的选定值。

于 2013-10-08T09:13:07.817 回答
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 中遇到了问题。

再次感谢索尼娅。

于 2016-07-07T19:54:04.713 回答