使用p:commandButton和p:dialog时出现Javascript错误

时间:2013-06-28 13:29:56

标签: javascript jsf primefaces facelets

当我点击p:commandButton以显示p:对话框时,我收到javacript错误。

请查看以下错误:

Message: Object doesn't support this property or method
Line: 1
Char: 169
Code: 0
URI: http://localhost:8080/idm/javax.faces.resource/dialog/dialog.js.xhtml?     ln=primefaces&v=2.2.1

Message: Object doesn't support this property or method
 Line: 1
 Char: 133
 Code: 0
 URI: http://localhost:8080/idm/javax.faces.resource/button/button.js.xhtml?ln=primefaces&v=2.2.1

以下是代码块:

     <ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui" 
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core">

<p:commandButton value="save"  onclick="dlg1.show();" ></p:commandButton>
     <p:dialog id="basicDialog" header="Basic Dialog" widgetVar="dlg1">  
  <h:outputText value="Resistance to PrimeFaces is futile!" />  
</p:dialog>
      </ui:composition>

所有其他主要组件都运行正常。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

  

是的,我们正在使用jQuery的另一个副本

删除它。 PrimeFaces作为一个基于jQuery / jQuery UI的JSF组件库已经自动包含其捆绑的jQuery文件以及其他对话框组件。 jQuery的多个副本只会相互冲突,导致像你所面临的JS错误。

如果您打算在不一定使用自动包含PrimeFaces捆绑的jQuery文件的PrimeFaces组件的页面上使用jQuery,请将此行添加到<h:head>

<h:outputScript library="primefaces" name="jquery/jquery.js" />

这种方式总是包含PrimeFaces捆绑的jQuery文件,如果某些PrimeFaces组件碰巧需要它,PrimeFaces将不会自动包含重复的jQuery文件。