2

如何使 Enter Key Press 的行为类似于 JSF 中的提交。它适用于输入框;但不是 inputSecret 框

4

6 回答 6

3

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

如果仍然无效,只需将以下内容添加onkeypressh:form

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

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

于 2010-03-10T19:11:19.847 回答
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> 
于 2012-05-30T11:46:36.360 回答
0

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

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

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

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

此处的 MS 错误报告:connect.microsoft.com:提交按钮值未随表单提交一起发布

于 2010-03-12T16:57:42.420 回答
0

用jsf 2测试。放:

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

以你的形式

于 2012-10-04T10:20:58.763 回答
0

我通过放置一个额外的 inputBox 并使用 javascript 隐藏它来使其工作。如果您有任何其他建议,请告诉我感谢 baluC 为我指明了正确的方向,杰瑞

于 2010-03-12T16:43:15.513 回答
0

从 ComputerPilot 的回答中,我知道这是 IE 中的错误,如果只有一个输入元素,它不会使父表单提交。为了克服这个问题,我又添加了一个带有属性的输入框,style="display:none"它工作得很好。

于 2011-01-27T10:13:06.807 回答