2

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

这是我正在使用的 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.
4

1 回答 1

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>
于 2013-10-28T05:45:24.927 回答