Enter Key Press的行为类似于JSF中的提交

时间:2010-03-10 18:42:07

标签: java jsf key submit enter

如何使Enter键按下JSF中的提交行为。它适用于InputBoxes;但没有inputSecret框

6 个答案:

答案 0 :(得分:3)

我以前没见过这个问题。这种行为特定于浏览器的可能性很小。尝试在不同类型的浏览器中排除其中一个(IE6 / 7/8,FF,Safari,Chrome等)。这是由一个(糟糕的)Javascript密钥事件监听器错误地抑制输入密钥(例如检查输入字符的JS密码验证器)引起的机会更大。

如果仍然徒劳,只需将以下onkeypress添加到h:form

<h:form onkeypress="if (event.keyCode == 13) this.submit();">

然而,您需要考虑textareas。如果您拥有它们,那么您需要自己将所有onkeypress个事件复制到textareas的h:inputXXX元素期望

答案 1 :(得分:3)

如果你想按ENTER键而不是以任何形式提交,我们在这里要做的是在af:form标签中添加defaultcommand属性,并将提交按钮的id作为值。此示例代码段是

<af:form id="f1" defaultCommand="cb1">
<af:outputText value="User Name" id="usename"/>
          <af:inputText value="#{BackingBean.userName}" id="uname" />
          <af:outputText value="Password" id="pword"/>
          <af:inputText value="#{BackingBean.password}" id="paword" secret="true"/>
          <af:commandButton text="Submit" action="#{BackingBean.method}" id="cb1" />
</af:form> 

答案 2 :(得分:0)

我通过放置一个额外的inputBox并使用javascript隐藏它来实现它。如果您有任何其他建议,请与我们联系 感谢baluC指出我正确的方向 杰里

答案 3 :(得分:0)

有一个旧规格在我脑海中突然出现。如果您的表单只包含一个输入字段,则在输入 -key上提交的行为在某些版本的Internet Explorer中不起作用。最简单的解决方法是确保您有多个输入字段。

此问题的其他原因包括......

  • 没有输入提交类型
  • 输入提交类型,但在页面上不可见(隐藏或定位在页面外)

此行为非常特定于此浏览器。

MS Bug Report Here connect.microsoft.com: submit button value not posted with form submission

答案 4 :(得分:0)

根据ComputerPilot的回答,我发现它是IE中的错误,如果只有一个输入元素,则不会使父表单提交。为了解决这个问题,我添加了一个带有属性style="display:none"的输入框,它工作正常。

答案 5 :(得分:0)

用jsf测试2. put:

<h:commandButton id="hidden" style="visibility: hidden;" action="#{mybean.myaction()}" />

在您的表单中