我使用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,...)
对于我的项目,我只需要使用一个表格。
有人有想法吗?
答案 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。