“输入”命令按钮不提交仅按IE< 9

时间:2012-02-10 22:06:59

标签: java forms internet-explorer jsf jsf-2

我有2个<h:form>元素彼此跟随(不是另一个),例如:

<h:form id="innerHeaderForm1">
    <h:inputText value="#{searchBar.eventname}" />
    <h:commandButton action="#{searchBar.search1}" value="click1"/>
</h:form>
<h:form id="innerHeaderForm2">
    <h:inputText id="last" value="#{searchBar.personname}"/>
    <h:commandButton action="#{searchBar.search2}" value="click2"/> 
</h:form>

这很好用。我遇到的问题是在IE 8中(我假设其他旧版本)在第一种形式时,我点击了我的键盘上的“输入”键,表单未提交。页面重新加载,但甚至没有调用#{searchBar.search1}

所有这些奇怪的是,这在第二种形式中工作正常。我没有收到错误消息,也没有从浏览器获得任何反馈。

在我的支持bean中,我有类似的东西:

public String search1() {
    System.out.println("submitting form1");
    return "success";
}

public String search2() {
    System.out.println("submitting form2");
    return "success";
}

当使用点击“回车”键时,我甚至没有进入支持bean。

但是:当我“点击”提交按钮(用鼠标)时,一切正常。

对此有任何见解将不胜感激!

2 个答案:

答案 0 :(得分:9)

对于只有一个<input type="text">字段的表单,这是一个MSIE特定的异常。唯一的解决方法是添加另一个由<input type="text">隐藏的display: none;字段。

<h:form id="innerHeaderForm1">
    <h:inputText value="#{searchBar.eventname}" />
    <h:inputText style="display: none;" />
    <h:commandButton action="#{searchBar.search1}" value="click1"/>
</h:form>

此问题与JSF无关。

答案 1 :(得分:-2)

inputText未收到id="eventName"

相关问题