2014-02-14 35 views
0

在我的JSF表单中,我使用BlockUI在处理时显示繁忙状态。它工作正常,直到我将JavaScript添加到标题。使用脚本标记,BlockUI完全不显示。我该如何解决这个问题?以下是我的表单,其中blockUI不工作的JavaScripts。我在Glassfish 3.2.2和Firefox浏览器中使用JSF 2.2,Primefaces 3.4.2。Primefaces BlockUI不起作用

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:p="http://primefaces.org/ui"> 
    <h:head> 
     <title>TODO supply a title</title> 
     <meta name="viewport" content="width=device-width"/> 
     <script src="js/jquery.min.js"></script> 
     <script src="js/classie.js"></script> 
     <script src="js/menu.js"></script>    
     <script type="text/javascript"> 
      $(function() { 
       $('#da-slider').cslider({ 
        autoplay: true, 
        bgincrement: 450 
       }); 
      }); 
     </script> 
    </h:head> 
    <h:body> 
     <h:form id="registration"> 
      <h1> Sign up </h1> 
      <p:growl id="growl" showDetail="true" /> 
      <p:dialog header="Error registering user" widgetVar="dlg" resizable="false"/> 
      <p:messages id="messages" autoUpdate="true" closable="true"/> 
      <p:panel id="panel"> 
       <h:panelGrid id="grid" columns="2" cellpadding="4"> 
        <p:outputLabel for="username" value="Username:" /> 
        <p:inputText id= "username" value="#{userBean.userId}" required="true">      
        </p:inputText>     
        <p:outputLabel for= "firstname" value="First Name: " /> 
        <p:inputText id="firstname" value="#{userBean.firstName}" required="true"/>     
        <p:outputLabel for= "lastname" value="Last Name: " /> 
        <p:inputText id= "lastname" value="#{userBean.lastName}" required="true"/> 
        <p:outputLabel for= "email" value="Email Address: " /> 
        <p:inputText id= "email" value="#{userBean.email}" required="true" 
           validatorMessage="Invalid email format" > 
        </p:inputText> 
        <p:outputLabel for= "organisation" value="Organisation:" /> 
        <p:inputText id="organisation" value="#{userBean.organisation}" required="true"/> 
       </h:panelGrid> 
      </p:panel> 
      <p class="signin button"> 
       <p:commandButton id="saveButton" value="Proceed" actionListener="#{userBean.createUser()}" onclick="#{userBean.validateForm()}" update="registration:panel @this"/> 
       <p:commandButton value="Reset" update="registration:panel" process="@this" actionListener="#{userBean.resetButton()}"/> 
      </p> 
      <p:blockUI block="panel" trigger="saveButton"> 
       <p>Processing....</p> 
       <p:graphicImage value="http://www.primefaces.org/showcase/images/loading.gif"/> 
      </p:blockUI> 
     </h:form> 
    </h:body> 
</html>  
+0

什么东西显示在浏览器控制台? –

+0

我看到以下与js相关的内容。 TypeError:$ .browser未定义primefaces.js:不推荐使用getPreventDefault()。改为使用defaultPrevented。 jquery.js:14 ,TypeError:$ .ui is undefined primefaces.js:1 – jpr

回答

1

在您的XHTML

<script src="js/jquery.min.js"></script> 

PrimeFaces已经附带jQuery捆绑在一起,但你已经下载并安装了一个又一个,因为这只会与PrimeFaces冲突捆绑jQuery

删除上述line<script src="js/jquery.min.js"></script>

试试上面,看看有没有什么帮助。

+0

它仍然无法正常工作。但是现在如果我删除这个脚本,blockUI就可以工作了。以前这没有发生。我想移除jquery做了一些改进。 – jpr

+0

由于我们没有明确地获取JQuery,所以我尝试了没有第一行j $ = jQuery.noConflict(),它正在工作。感谢您的建议。 – jpr

+0

您可以从您的帖子中删除jQuery.noConflict(),以便我可以接受答案。 – jpr