Firefox中的Primefaces自动完成功能未在选择中关闭

时间:2015-01-07 12:20:34

标签: javascript primefaces

我正在使用Primefaces 5.0.9和Wildlfy 8.1以及JSF 2.1.2

我的自动完成定义如下:

<p:autoComplete label="CAT" id="CATEGORY" dropdown="true" value="#{UserDownloadFileBean.editUserFileCategory}" 
        completeMethod="#{UserDownloadFileBean.categoryAutoComplete}" converter="#{UserDownloadFileCategoryConverter}" forceSelection="true"
        var="item" itemLabel="#{item.name}" itemValue="#{item}" required="true" requiredMessage="Please choose a category!" >
    <f:ajax event="itemSelect" update=":UploadFileCategoryDialogForm" />
</p:autoComplete>

除了Firefox(使用v32和v34测试)之外,所有浏览器都可以正常使用。 当我在建议中选择一个条目时,面板不会隐藏。关闭它的唯一方法是点击外面。 firebug控制台发出此错误:

  

ReferenceError:未定义事件

检查生成的javaScript代码问题很明显:

function(){PrimeFaces.cw("AutoComplete","CATEGORY",{id:"createUserDownloadFileForm:CATEGORY",widgetVar:"CATEGORY",delay:300,deletionDelay:600,forceSelection:true,behaviors:{
            itemSelect:function(ext) {mojarra.ab('createUserDownloadFileForm:CATEGORY',event,'itemSelect',0,0,{'CLIENT_BEHAVIOR_RENDERING_MODE':'UNOBSTRUSIVE'})}}});});

变量事件不存在(我猜其他浏览器仍然提供它?)。 在Showcase(Pf v5.1.7)中,代码使用Primefaces.ab和ext代替:

$(function(){PrimeFaces.cw("AutoComplete","widget_j_idt88_event",{id:"j_idt88:event",widgetVar:"widget_j_idt88_event",delay:300,behaviors:{
            itemSelect:function(ext) {PrimeFaces.ab({s:'j_idt88:event',e:'itemSelect',p:'j_idt88:event',u:'j_idt88:msgs'},ext);}}});});

这是在5.0.9之后修复了一段时间吗?如果有的话有办法在5.0.9中获得工作版本吗? 否则我可能做错了它不使用相同的功能?

1 个答案:

答案 0 :(得分:1)

这已被报告为bug到主要面,并且我在其代码中发布了修补程序以修复它。就我而言,我必须构建一个新的jar才能使这个工作无需将数百个f:ajax元素转换为p:ajax。