2011-03-10 136 views
2

我的表格上有一些<h:inputText>和两个<h:commandButton> s,一个commandbutton以经典的方式提交表单,另一个有<f:ajax>,当用户按下回车键时,如何防止表单提交在我的其中一个输入触发第二个按钮?JSF 2.0阿贾克斯问题

回答

3

如果您的表单中没有textareas,请将以下内容添加到<h:form>

<h:form onkeypress="return event.keyCode != 13"> 

Enter键有钥匙码13,因此上述回报false每当它被按下,所以默认的动作将不会发生了形式。但是,如果您的表单中有文本区域(<h:inputTextArea>及以上),您希望Enter键功能照常运行,那么您需要将onkeypress属性放在所有非textarea输入字段中,而不是。您可以使用JS/jQuery来最小化代码重复。

+0

这使得所有的输入不会按Enter键提交表单,但我只需要一个像这样的输入。我想触发ajax监听器。 – ehsun7b 2011-03-10 13:27:54

+0

然后将其放在只有您不想通过按Enter键提交表单的单个输入元素上。 – BalusC 2011-03-10 13:29:17