4

我有一个带有 inputText 和 commandButton 的简单表单。

<h:form>
    <h:inputText id="xyz" value="#{viewImpl.field}" onfocus="clearText(this)" onblur="setDefaultText(this)" />
    <h:commandButton action="#{viewImpl.method}"/>
</h:form>

如果我按下命令按钮,则表单已正确提交。但是,如果我按 Enter 键,页面仍会在 inputText-Field 中重新加载,但不会调用该方法(服务器处于调试模式并激活断点)。

重要提示:这只发生在 IE 8 中。它在 Firefox 中运行良好。关于如何解决这个问题的任何线索?

非常感谢!

4

1 回答 1

5

这是 IE 中单字段表单的一个已知问题。按下回车键不会触发表单的第一个-下一个按钮,因此它的名称=值对不会出现在请求参数映射中,因此 JSF 无法识别按钮以将操作事件排队。

解决此问题的方法之一是将第二个但不可见的输入字段添加到相同的表单中。

<input type="text" name="dummy" style="display: none;" />

这将导致 IE 也发送第一个到下一个按钮的名称=值对。

于 2013-03-13T18:30:58.930 回答