【问题标题】:a4j rerender inputText onSubmit eventa4j 重新渲染 inputText onSubmit 事件
【发布时间】:2011-08-02 18:20:30
【问题描述】:

我尝试了不同的组合来重新渲染结果面板。

它可以很好地与

<h:form><a4j:region>
<h:inputText value="#{myBean.keyword}">
<a4j:support event="onchange" reRender="results" eventsQueue="search" oncomplete="initResults();" />
</h:inputText>
</a4j:region>
</h:form>

但我只想在按下输入时提交它。所以我尝试了

<h:form reRender="results" eventsQueue="search" oncomplete="initResults();"><a4j:region>
<h:inputText value="#{myBean.keyword}"/>
</a4j:region>
</h:form>

返回一个空的结果,即使它不应该是空的并且

<a4j:region>
<h:form>
<a4j:support event="onsubmit" reRender="results" eventsQueue="search" oncomplete="initResults();" />
<h:inputText value="#{myBean.keyword}"/>
</h:form>
</a4j:region>

正在重新加载整个页面,而不仅仅是结果面板(而是显示的结果)。我什至尝试在最后一个示例中添加&lt;h:form onSubmit="return false;"&gt;。 [编辑:好的,返回 false 只是被 AJAX 支持调用覆盖]

当按下“enter”时,如何让我的 inputText 字段重新呈现。 (所以表单已提交)但不想提交表单。

编辑: 又是我的错,我在这里简化了示例代码太多。我在同一个表单中有一个带有 a4j:support 的第二个元素,因为我在那里删除了 a4j 标记并将 onchange 事件也更改为表单提交,它正在工作。

<h:selectOneMenu value="#{myBean.selectedMetaCategory}" onchange="this.form.submit();">
  <a4j:support ...
  <f:selectItems value="#{myBean.metaSelectItems}"/>
</h:selectOneMenu>

【问题讨论】:

    标签: jsf facelets ajax4jsf


    【解决方案1】:

    试试这样:

    <a4j:region>
    <a4j:form onsubmit="reRenderResults();">
    <h:inputText value="#{myBean.keyword}"/>
    </a4j:form>
    <a4j:jsFunction name="reRenderResults" reRender="results" eventsQueue="search" oncomplete="initResults();" />
    </a4j:region>
    

    【讨论】:

    • 做了不同的方式,就像我在上面编辑中写的那样,但由于我的问题中缺少信息,我将你的答案标记为正确。
    猜你喜欢
    • 2011-07-27
    • 1970-01-01
    • 2016-10-08
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    相关资源
    最近更新 更多