如何在ajax actionListener调用后更新表单的特定值?

时间:2014-07-18 04:03:46

标签: ajax jsf primefaces

我的主要表格如下:

<h:form id="frmSearch" styleClass="m-bottom">

    <div class="form-group">
        <label>Funcionário</label>
        <h:inputText id="funcionario" value="#{escalaTrabalhoBean.entityToSearch.funcionario.pessoa.nome}" readonly="true" styleClass="form-control" />
        <h:commandButton id="btnFuncionario" styleClass="btn btn-default" value="Buscar funcionário" onclick="$('#modBuscaFuncionario').modal('show')" type="button" />
    </div>

</h:form>

我想在使用ajax调用函数后更新字段“funcionario”的值,该函数位于模态窗口内:

<h:form id="frmSearchBuscaFuncionario">
    <h:commandLink id="btnSelecionar" title="Selecionar" actionListener="#{escalaTrabalhoBean.selectFuncionario(obj)}">
        <i class="fa fa-pencil-square-o"></i>
        <p:ajax oncomplete="$('#modBuscaFuncionario').modal('hide');" update="frmSearch:funcionario" />
    </h:commandLink>
</h:form>

此代码:update =“frmSearch:funcionario”无效,我收到此错误:javax.faces.FacesException:找不到标识符为“frmSearch:funcionario”的组件。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

当您访问当前h:form之外的组件时,请在组件ID的开头使用:
在你的例子中: update=":frmSearch:funcionario"