【问题标题】:JSF Form Submit works in FF but not in IEJSF 表单提交在 FF 中有效,但在 IE 中无效
【发布时间】:2013-03-13 16:17:13
【问题描述】:

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

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

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

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

非常感谢!

【问题讨论】:

    标签: jsf internet-explorer-8 form-submit


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我认为另一种明智的选择是将自定义 keyup 侦听器绑定到一个输入字段,该字段标识输入键并在这种情况下触发命令按钮单击。
    • @skuntsel:是的,但是如果 JS 被禁用,这会中断。我的回答提供了一种适用于所有情况的方法。
    • 同意。该评论旨在作为评论,而不是破坏您的答案:)
    • 像魅力一样工作。非常感谢 BalusC!
    猜你喜欢
    • 2013-01-16
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多