如何使Enter键按下JSF中的提交行为。它适用于InputBoxes;但没有inputSecret框
答案 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()}" />
在您的表单中