2016-12-22 1 views
-3

select2가 작동하지 않습니다. catch되지 않은 형식 오류 : 그것은 단지 여러 선택 박스 콘솔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> 

오류와 함께 보여줍니다. $ (...) 선택 2는 HTMLDocument의에서 기능 없습니다.

JS 바이올린 : 올바르게 가져온 경우

https://jsfiddle.net/y6ogss94/

+1

를 콘솔에 오류가 있습니다'형식 오류 : $ (...)를 선택 2 그것은 보이는 function' 없습니다. select2 잘 가져올 수 없습니다. – AnthonyB

+0

@AnthonyB Uncaught TypeError : $ (...). select2가 HTMLDocument에있는 함수가 아닙니다. select2''전 jquery''를 포함

+1

시도 순서가 올바른지 (* jQuery를 한 후 선택 2 *)와 jQuery를 여러 번로드되지 않은 경우 내가 선택 2 – raser

답변

3

이 잘 실행 - jQuery 라이브러리, 선택 2의 JS 및 선택 2의 CSS를.

여기

나는 그들의 CDN에서 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

당신 DOM이로드되면 select2를 초기화 할 수 있습니다. 따라서 _DOMContentLoaded_ 이벤트 내에서 초기화 할 수 있습니다. 중요한 것은 select2가 jquery 및 select2 스크립트를 가져온 후에 사용된다는 것입니다. – AnthonyB

+0

예, 당신 말이 맞습니다 @AnthonyB. 감사. 하지만 코드 스 니펫은 "$ (document) .ready()"와 같은 스크립트 코드를 자동으로 넣으므로 DOM을로드 한 후에 만 ​​실행됩니다. 나는 확실하지 않다. –

+0

스 니펫은 생각하지만 사람들이 Select2 문제를 해결하기 위해이 코드를 복사/붙여 넣기 할 때 스크립트를 가져온 후 Select2를 사용하고 아마도 $ (document) .ready()에 유용 할 수 있습니다 – AnthonyB

관련 문제