JSF Inplace - 在focusOut中保存价值

时间:2013-10-28 05:19:51

标签: jsf primefaces

我需要在 Inplace JSF中的 关注 上保存值。目前可以使用编辑器标签,但它会显示保存/取消按钮。 我的要求是将数据保存在焦点上。

这是我正在使用的Inplace标记。

 <p:inplace id="basic">  
         <p:inputText value="Edit Me" />  
 </p:inplace> 

是否有任何类似的ajax事件。

<p:ajax event="Something like focusOut" listener="#{bean.myFunction()}"/>

当我使用Blur作为ajax事件时我的代码示例

<p:inplace label="#{serviceCalendarViewManagedBean.selectedService.statusStr}"  id="ajaxInplaceStatusEdit" >
<p:ajax event="blur" listener="#{serviceCalendarViewManagedBean.inplaceEdit('StatusEdit')}" update="view" oncomplete="scheduleWidget.update();"/>
<p:selectOneMenu id="statusEditImplace" required="true"
 value="#{serviceCalendarViewManagedBean.selectedService.status}"
 label="text">
<f:selectItems value="#{serviceCalendarViewManagedBean.serviceStatusList}"
 var="status" itemLabel="#{status.title}" itemValue="#{status.id}" />
</p:selectOneMenu>
</p:inplace>

使用此事件时收到的错误消息

    /WEB-INF/views/service/servicecalendarview.xhtml @886,153 <p:ajax>
 Event:blur is not supported.

1 个答案:

答案 0 :(得分:1)

您正在寻找onblur事件:

  

当用户离开输入字段时执行JavaScript:

JSF代码:

<p:ajax event="blur" listener="#{bean.myFunction()}"/>

编辑:根据您发布的代码,<p:ajax>会影响<p:inplace>应该影响<p:selectOneMenu>的位置。将<p:ajax>移到<p:selectOneMenu>

<p:inplace label="#{serviceCalendarViewManagedBean.selectedService.statusStr}"
    id="ajaxInplaceStatusEdit" >
    <p:selectOneMenu id="statusEditImplace" required="true"
        value="#{serviceCalendarViewManagedBean.selectedService.status}"
        label="text">
        <f:selectItems value="#{serviceCalendarViewManagedBean.serviceStatusList}"
            var="status" itemLabel="#{status.title}" itemValue="#{status.id}" />
        <p:ajax event="blur" listener="#{serviceCalendarViewManagedBean.inplaceEdit('StatusEdit')}"
            update="view" oncomplete="scheduleWidget.update();"/>
    </p:selectOneMenu>
</p:inplace>