2016-12-29 48 views
0

我開始使用Bootsfaces,但使用<b:selectManyMenu>標籤時遇到問題。

這是我的XHTML頁面:

<link rel="stylesheet" 
    href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"></link> 
<link rel='stylesheet' type='text/css' 
    href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.4.1/css/bootstrap-slider.css"></link> 
<link rel='stylesheet' type='text/css' 
    href="https://cdn.datatables.net/1.10.13/css/dataTables.bootstrap.min.css 
    "></link> 
<link rel="stylesheet" type="text/css" 
    href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/css/bootstrap-multiselect.css"></link> 
<script 
    src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script 
    src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
<script 
    src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.4.1/bootstrap-slider.js"></script> 
<script 
    src="https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/4.4.0/bootbox.min.js"></script> 
<script 
    src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script> 
<script 
    src="https://cdn.datatables.net/1.10.13/js/dataTables.bootstrap.min.js"></script> 

<div> 
            <h:outputLabel value="Select key columns:"/> 
            <br></br> 
            <b:selectMultiMenu value="#{controller.keyColumns}"> 
             <f:selectItems value="#{controller.keyLista()}" var="f" 
              itemLabel="column: -#{f}" itemValue="#{f}"></f:selectItems> 
            </b:selectMultiMenu> 
           </div> 

其中VAR keyColumnskeyColumns1List<String>。 問題是沒有選擇列表中的任何一個元素,但是如果我使用<b:selectOneMenu>所有工作正常。

谷歌控制檯顯示'Uncaught TypeError:$(...)。multiselect不是一個函數'。 Ps:我需要其他項目功能的所有腳本,並且我無法使用bootsfaces標籤更改所有腳本。有沒有什麼辦法只爲這種情況使用正確的jquery代碼?

感謝

+0

只是PrimeFaces一樣,通過刪除所有的JS可能已在BootsFaces可啓動(bootstrap.js如) – Kukeltje

+0

哦哇。 ..在右側(相關的問題,StackOverflow最有可能已經顯示你,當你創建的問題)是一個littelral重複https://stackoverflow.com/questions/27103898/bootstrap-multiselect-typeerror-multiselect-is -not-a-function?rq = 1和另一個:https://stackoverflow.com/questions/26040431/bootstrap-multiselect-uncaught-typeerror-undefined-is-not-a-function?rq = 1 – Kukeltje

回答

0

像Kukeltje已經寫,只是刪除所有這些JavaScript進口。你不需要它們,因爲它們已經是BootsFaces的一部分。另外,他們造成這個問題。您正在嘗試在加載jQuery文件之前初始化selectMultiMenu。但jQuery必須先加載。

更新:我剛剛看到您的帖子scriptum。您可能需要所有這些JS和CSS依賴項,但您並不需要在每個頁面上都使用它們。例如,每個包含BootsFaces組件的頁面都會自動包含jQuery和Bootstrap文件,除非您另外配置BootsFaces。並且包含b:multiSelectMenu的每個頁面都會自動加載JavaScript文件(並且無法將其停用)。另見http://showcase.bootsfaces.net/layout/resourcemanagement.jsfhttp://showcase.bootsfaces.net/miscellaneous/Configuration.jsf

順便說一下,您可能要更新到BootsFaces-1.1.0-SNAPSHOT。我們已經修復了b:selectMultiMenu的一些bug,但是在撰寫本文時,尚未在Maven Central上發佈官方版本。有關如何獲取它,請參閱this ticket

這就是說,這裏是你的代碼段的工作最低版本:

<?xml version='1.0' encoding='UTF-8' ?>                         
    <!DOCTYPE html>                               
    <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:b="http://bootsfaces.net/ui"                        
      >                                 
     <h:head>                               
      <title>BootsFaces rocks!</title>                        
      <meta name="author" content="Stephan Rauh"></meta>                    
     </h:head>                               
     <h:body>                               
      <b:selectMultiMenu value="#{formBean.combobox}">                     
      <f:selectItem itemValue="0" itemLabel="red"></f:selectItem>                  
      <f:selectItem itemValue="1" itemLabel="yellow"></f:selectItem>                 
      <f:selectItem itemValue="2" itemLabel="green"></f:selectItem>                 
      </b:selectMultiMenu>                            
     </h:body>                               
    </html>                                 
相關問題