更新后焦点丢失

kar*_*kpl 3 javascript jquery jsf primefaces

我有两个输入的表单,其中一个值取决于另一个.当用户更改一个字段时,我需要重新计算值(这在setter方法中完成)并更新表单.

这是我的例子:

<h:form>
<p:inputText id="price1" value="#{bean.price1}"}">
    <p:ajax event="blur" update="@this, price2"/>
</p:inputText>
<p:inputText id="price2" value="#{bean.price2}">
    <p:ajax event="blur" update="@this, price1"/>
</p:inputText>
</h:form>
Run Code Online (Sandbox Code Playgroud)

问题是更新后焦点丢失,例如,如果用户使用Tab键从price1移动到price2.

Ron*_*yen 5

你可以试试这个:

<h:form id="fm">
    <script type="text/javascript">
        function test(){
            $(PrimeFaces.escapeClientId('fm:price2')).focus();
        }
    </script>
    <p:inputText id="price1" value="#{bean.price1}" >
        <p:ajax event="blur" oncomplete="test();" update="@this, price2"                listener="#{bean.hand}"/>
    </p:inputText>
    <p:inputText widgetVar="xxx" id="price2" value="#{bean.price2}">
        <p:ajax event="blur" update="@this, price1"/>
    </p:inputText>
</h:form>
Run Code Online (Sandbox Code Playgroud)