这是我的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支持bean函数如下所示:
public String check()
{
RequestContext.getCurrentInstance().execute("list:countryCode.focus();");
return "";
}
我想要的是当我在前缀中输入4个字符时,焦点应自动转到下一个InputText字段,即CountryCode。我没有收到任何错误,输入4个字符后,调用我的支持bean方法并成功运行,但是对gui的关注不会改变。
我怀疑可能我的支持bean中的代码没有按预期执行,也许它找不到CountryCode字段。
这个问题与标记的问题不同的是,我无法在项目中创建单独的内容,因此没有Jquery。
答案 0 :(得分:0)
这样的事情应该有效:
<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" id="txtPrefix" onkeydown="if (document.getElementById('txtPrefix').value.length>=4) { document.getElementById('countryCode').focus(); return false; }">
</p:inputText>
<p:inputText id="countryCode" widgetVar="countryCode" styleClass="countryCode" value="#{Controller.CountryCode}" maxlength="2">
<\div>