2016-12-29 2 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> 

, в котором вар keyColumns и keyColumns1 являются List<String>. Проблема в том, что ни один элемент списка не выбран, но если я использую <b:selectOneMenu>, все работает нормально.

Консоль Google говорит: «Невозможно использовать 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. Кроме того, они вызывают проблему. Вы пытаетесь инициализировать selectMultiMenu перед загрузкой файла jQuery. Но сначала нужно загрузить jQuery.

Обновление: Я только что видел ваше сообщение scriptum. Возможно, вам понадобятся все эти зависимости JS и CSS, но вам не нужна каждая из них на каждой странице. Например, каждая страница, содержащая компонент BootsFaces, автоматически включает файлы jQuery и Bootstrap, если вы не настроили BootsFaces иначе. И каждая страница, содержащая b: multiSelectMenu, автоматически загружает файл JavaScript (и нет возможности отключить его). Также см. http://showcase.bootsfaces.net/layout/resourcemanagement.jsf и http://showcase.bootsfaces.net/miscellaneous/Configuration.jsf.

Кстати, вы можете обновить до BootsFaces-1.1.0-SNAPSHOT. Мы исправили пару ошибок b: selectMultiMenu, но на момент написания статьи не публиковали официальную версию на 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>                                 
Смежные вопросы