时,这应该有希望重新聚焦元素
我使用JSF,并且在页面上有2个输入文本。
<h:inputText id="xxx" value="#{file.xxx}" maxlength="12" >
<a4j:support event="onchange" reRender="datePanel1"
onchange="validateXXX();"
oncomplete="process();"
/>
</h:inputText>
<h:inputText id="yyy" value="#{file.yyy}" maxlength="12" >
<a4j:support event="onchange" reRender="datePanel1"
onchange="validateYYY();"
oncomplete="process();"
/>
</h:inputText>
当改变任何值时,应该验证这对值。如果验证失败,则可以自动更新输入文本的其他值。Oncomplete事件用于在页面上输出状态消息,不能删除。问题是,当我从第一个输入文本TAB到第二个输入文本,第二个输入文本的值在第一个输入文本的"验证"后改变,焦点从第二个输入文本消失。如何防止焦点消失,但仍然使用a4j:支持?
尝试使用javascript将元素重新聚焦到oncomplete
。
<h:inputText id="xxx" value="#{file.xxx}" maxlength="12" >
<a4j:support event="onchange" reRender="datePanel1"
onchange="validateXXX();"
oncomplete="process();document.getElementById('xxx').focus();"
/>
</h:inputText>
<h:inputText id="yyy" value="#{file.yyy}" maxlength="12" >
<a4j:support event="onchange" reRender="datePanel1"
onchange="validateYYY();"
oncomplete="process();document.getElementById('yyy').focus();"
/>
</h:inputText>
当oncomplete处理程序被调用.....