Javascript 使用a4j:支架时焦点消失

Javascript 使用a4j:支架时焦点消失,javascript,events,jsf,focus,ajax4jsf,Javascript,Events,Jsf,Focus,Ajax4jsf,我使用JSF,页面上有两个输入文本 <h:inputText id="xxx" value="#{file.xxx}" maxlength="12" > <a4j:support event="onchange" reRender="datePanel1" onchange="validateXXX();" oncomplete="process();" /> </h:inputText> <h:

我使用JSF,页面上有两个输入文本

<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事件用于输出页面上的状态消息,无法删除。
问题是,当我从第一个输入文本切换到第二个输入文本,并且在第一个输入文本“验证”后第二个输入文本的值发生变化时,焦点从第二个输入文本消失。如何防止焦点消失,但仍然使用a4j:support?

尝试使用javascript将元素重新聚焦到oncomplete上

e、 g


当调用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>