当多个inputText和commandButton时,在inputText和commandButton之间进行聚焦

时间:2015-11-24 10:56:25

标签: jsf richfaces

我使用richfaces和jsf。

我的表格看起来像那样:

<h:form>

    <h:inputText id="id1" value="#{mybean.1}" />
    <h:commandButton id="button1" action="#{otherBean.goToPage1}">
        <f:ajax execute="id1" render="id1" />
    </h:commandButton>

    <h:inputText id="id2" value="#{mybean.2}" />
    <h:commandButton id="button2" action="#{otherBean.goToPage2}">
        <f:ajax execute="id2" render="id2" />
    </h:commandButton>        

    <h:inputText id="id3" value="#{mybean.3}" />
    <h:commandButton id="button3" action="#{otherBean.goToPage3}">
        <f:ajax execute="id3" render="id3" />
    </h:commandButton>

</h:form>

我的问题是,当我在输入上写东西时,#3; id3&#34;然后我按下ENTER,命令按钮为&#34; id1&#34;在看书。 或者我想要的是,当我在输入中按Enter键时,良好的commandButton正在读取(button1的input1,button2的input2,...)

对于我的项目,我只需要使用一个表格。

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

我找到了遗漏的东西:

<h:inputText id="id1" value="#{mybean.1}" 
             onkeyup="if (event.keyCode == 13) { #{rich:element('button1')}.click();}"
             onkeydown="if (event.keyCode == 13) { #{rich:element('button1')}.click();}"/>
<h:commandButton id="button1" action="#{otherBean.goToPage1}">
    <f:ajax execute="id1" render="id1" />
</h:commandButton>

必须在每个inputText和#{rich:element('button1')} <上添加两行“ onkeyup ”和“ onkeydown ” / strong>替换 document.getElementById('button1')

对于Internet Explorer,我添加: onblur =“#{rich:element('button1')}。click();”

<h:inputText id="id1" value="#{mybean.1}" 
             onkeyup="if (event.keyCode == 13) { #{rich:element('button1')}.click();}"
             onkeydown="if (event.keyCode == 13) { #{rich:element('button1')}.click();}"
             onblur="#{rich:element('button1')}.click();" />

适用于IE8和IE11。