Фокус исчезает при использовании a4j: поддержка - PullRequest
1 голос
/ 05 августа 2011

Я использую 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: support?

1 Ответ

0 голосов
/ 17 августа 2011

Попробуйте использовать 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 .....

...