2016-07-18 1 views
1

select2 플러그인으로 맞춤 matcher를 사용하려고하는데 "text.toUpperCase()"가 정의되지 않았습니다. 오류가 발생합니다. 나는 예제를 따라 왔지만 작동시키지 못한다. 어떤 도움을 주시면 감사하겠습니다. 내 코드는 다음과 같습니다 :select2 맞춤 matcher toUpperCase 정의되지 않았습니다.

<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.full.min.js"></script> 
<script type="text/javascript"> 
    $('.selectpicker').select2({ 
    placeholder: 'Select an option', 
    matcher: function(term, text) { 
     var has = true; 
     var words = term.toUpperCase().split(" "); 
     for (var i =0; i < words.length; i++){ 
     var word = words[i]; 
     has = has && (text.toUpperCase().indexOf(word) >= 0); 
     } 
     return has; 
    } 
    }); 
</script> 
+0

어떤 버전을 사용하고 있습니까? v4 또는 v3? 함수 일치 자 (params, data) { // ($ .trim (params.term) === ')) { 반환 할 때 아무 것도 비교하지 않을 경우 항상 객체를 반환합니다. 반환 값 : 기본 일치자가 다른 서명을 가지고 있기 때문에 – Shrike

답변

0

아마 당신은 정규식 서명에서 v3를 사용하고 있습니다. JS 스크립트 소스 URL에 정의 된대로 내가 V4를 사용하고

matcher: function(term, text) { 
    var has = true; 
    var words = ("" + term).toUpperCase().split(" "); 
    for (var i =0; i < words.length; i++){ 
    var word = words[i]; 
    has = has && (("" + text).toUpperCase().indexOf(word) >= 0); 
    } 
    return has; 
} 
0

:

내가 확인하기 위해 입력 인수를 정상화하는 것이 좋습니다 것입니다 그들은 문자열입니다. 나는 먼저 콘텐츠를 정규화하려는 아이디어를 시도 할 것이다. 그게 예제를 따라하지만 왜 그것이 작동하지 않았는지 잘 모르겠습니다.

정규식 서명이 잘못되었다고 생각하는 이유는 무엇입니까?

+0

이 반환됩니다. 데이터; } – Shrike

관련 문제