2016-12-22 19 views
-3

My select2 не работает. Это просто показывает, с многократным переключателеselect2 не работает

<form action=""> 
<select class="js-example-basic-multiple" multiple="multiple"> 

<option value="AK">Alaska</option> 
<option value="HI">Hawaii</option> 

<option value="CA">California</option> 
<option value="NV">Nevada</option> 
<option value="OR">Oregon</option> 
<option value="WA">Washington</option> 

<option value="AZ">Arizona</option> 
<option value="CO">Colorado</option> 
<option value="ID">Idaho</option> 
<option value="MT">Montana</option> 
<option value="NE">Nebraska</option> 
<option value="NM">New Mexico</option> 
<option value="ND">North Dakota</option> 
<option value="UT">Utah</option> 
<option value="WY">Wyoming</option> 

    </select> 
</form> 
<script type="text/javascript"> 
       $(".js-example-basic-multiple").select2(); 
</script> 

Ошибка в консоли: Uncaught TypeError:. $ (...) Выбор2 не является функцией в HTMLDocument.

JS FIDDLE:

https://jsfiddle.net/y6ogss94/

+1

У вас ошибка в консоли: 'TypeError: $ (...) Выбор2 не function' кажется. select2 не хорошо импортирован. – AnthonyB

+0

@AnthonyB Uncaught TypeError: $ (...). Select2 не является функцией в HTMLDocument.

+1

Попробуйте включить 'jquery' перед' select2' – raser

ответ

3

Это прекрасно работает, если вы импортировали правильно - Jquery библиотека, ВЫБ.2 JS и ВЫБ.2 CSS.

Здесь я импортировал JQuery 2.0.0 и select2 CSS и JS от их КДС и она отлично работает:

$(".js-example-basic-multiple").select2();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" /> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script> 
 

 

 
<form action=""> 
 
<select class="js-example-basic-multiple" multiple="multiple"> 
 

 
<option value="AK">Alaska</option> 
 
<option value="HI">Hawaii</option> 
 

 
<option value="CA">California</option> 
 
<option value="NV">Nevada</option> 
 
<option value="OR">Oregon</option> 
 
<option value="WA">Washington</option> 
 

 
<option value="AZ">Arizona</option> 
 
<option value="CO">Colorado</option> 
 
<option value="ID">Idaho</option> 
 
<option value="MT">Montana</option> 
 
<option value="NE">Nebraska</option> 
 
<option value="NM">New Mexico</option> 
 
<option value="ND">North Dakota</option> 
 
<option value="UT">Utah</option> 
 
<option value="WY">Wyoming</option> 
 

 
    </select> 
 
</form>

Примечание: Вы должны выполнить свой ВЫБ.2 инициализацию код только после того, как вы включили как библиотеки js, так и DOM, которые являются общей практикой для большинства плагинов jQuery, и не только это. Таким образом, при использовании этого кода вы должны написать этот сценарий после включения JQuery и ВЫБ.2 сценариев:

<script> 
$(document).ready(function(){ 
    $(".js-example-basic-multiple").select2(); 
});//document ready 
</script> 
+0

You может захотеть использовать initialize select2 после загрузки DOM. Таким образом, вы можете инициализировать его внутри события _DOMContentLoaded_. Важным является select2, который будет использоваться после импорта сценариев jquery и select2. – AnthonyB

+0

Да, ты прав @ Энтони. Благодарю. Но я думаю, что фрагмент кода автоматически помещает весь код сценария в нечто вроде «$ (document) .ready()», поэтому он запускается только после загрузки DOM. Хотя я не уверен. –

+0

Этот фрагмент, я думаю, но поскольку люди будут копировать/вставлять этот код, чтобы исправить их проблему Select2, было бы полезно использовать Select2 после импорта скриптов и, возможно, в '$ (document) .ready()' – AnthonyB