inputText enter导致页面刷新

时间:2014-01-22 19:57:59

标签: jsf jsf-2

我在页面上有几个inputText框,其中包含相关的编辑/提交按钮(可以正常工作)。我想这样做,以便当用户从inputText框内按Enter键时,表单将被提交。对于我的一个表单,它可以工作,而另一个表单则不然。这是不起作用的那个:

<h:form>
<iframe src="#{appInfo.documentation}"/>
<h:commandButton value="Edit" >
    <f:ajax listener="#{appInfo.editDoc}" render="@form"/>
</h:commandButton>
<h:commandButton value="Save" >
    <f:ajax listener="#{appInfo.saveDoc}" render="@form"/>
</h:commandButton>
<h:inputText value="#{appInfo.documentation}" > 
<!-- pressing enter causes page refresh -->
  <f:ajax/>
</h:inputText>
</h:form>

而那个:

<h:form>
  <h:dataTable id="table" value="#{appInfo.model.apps}" var="a">
    <h:column>
    <f:facet name="header">URL</f:facet>
    <h:outputText value="#{a.url}"/>
    <h:inputText value="#{a.url}">
    <!-- pressing enter does NOT causes page refresh -->
      <f:ajax/>
    </h:inputText>
    </h:column>
  </h:dataTable>
    ... command buttons
</h:form>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在输入字段中按“Enter”会触发相同的行为,例如点击该表单的第一个button 。在您的第二个示例中,根本没有按钮。只要你添加,例如那里有一个commandButton(就像在第一个例子中一样),输入将按预期执行。