【发布时间】:2017-10-30 16:19:51
【问题描述】:
这是我的 xHTML 代码:
<div id="list">
<p:outputLabel styleClass="heading" value="#{msg['content.search.title']}" />
<p:outputLabel value="#{msg['content.search.bic']}" />
<p:inputText styleClass="prefix" value="#{Controller.prefix}" maxlength="4" onkeyup="return this.value.length >= 4">
<p:ajax event="keyup" listener="#{Controller.check}"></p:ajax>
</p:inputText>
<p:inputText id="countryCode" widgetVar="countryCode" styleClass="countryCode" value="#{Controller.CountryCode}" maxlength="2">
<\div>
我的 java backing bean 函数如下所示:
public String check()
{
RequestContext.getCurrentInstance().execute("list:countryCode.focus();");
return "";
}
我想要的是,当我在前缀中输入 4 个字符时,焦点应自动转到下一个 InputText 字段,即 CountryCode。我没有收到任何错误,在输入 4 个字符后,我的支持 bean 方法被调用并成功运行,但是对 gui 的关注没有改变。
我怀疑也许我在 backing bean 中的代码没有做它应该做的事情,也许它没有找到 CountryCode 字段。
这个问题与标记的不同之处在于我无法在我的项目中创建单独的问题,因此没有 Jquery。
【问题讨论】:
-
对每个按键进行 ajax 调用在性能方面并不是一件好事。如果您的
onkeyup="return this.value.length >= 4"有效,为什么不在那里做呢,纯客户端。 -
@JasperdeVries 没有其他问题使用 JQuery。
-
@Kukeltje 你能告诉我怎么做吗?因为它应该只在输入 4 个值后触发。你能帮忙吗?
-
阅读其他问答...也是非 jquery 答案...并且 PrimeFaces 使用 jquery,所以您已经拥有了...
标签: javascript html primefaces xhtml