2011-08-05 44 views
1

我使用JSF,并且在页面上有2个输入文本。使用a4j:支持时焦点消失

<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> 

当更改任何值时,应验证该对值。如果验证失败,输入文本的其他值可以自动更新。完成事件用于输出页面上的状态消息,不能删除。 问题是,当我从第一个输入文本选择第二个输入文本并在第一个输入文本“验证”后更改第二个输入文本的值时,焦点从第二个输入文本中消失。我如何防止焦点消失,但仍然使用a4j:支持?

回答

0

尝试使用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处理程序被调用.....

相关问题