2016-06-22 1 views
0

부트 스트랩 태그 입력 플러그인을 사용하고 있습니다. 특정 입력 필드에 태그 형식으로 일부 값을 표시하려고합니다. 이 값은 json 형식의 db에서 찾을 수 있습니다. 나는 문서 https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples 에 나와있는 것처럼 add 메서드를 사용했지만 작동하지 못했습니다.태그의 형태로 소스 값 표시

내 바이올린 데모는 여기에 있습니다 : @Siavas가 언급 한 바와 같이 https://jsfiddle.net/Lh4jy9d4/90/ $('input #expertise').tagsinput('add', {id: 1, text: 'javascript' })

+0

당신이 사용하는 어떤 브라우저? 그것은 나를 위해 크롬에서 작동합니다 – Siavas

+0

나도 나를 위해 태그가로드시 나타나지 않는다 – user596502

+1

프로젝트에서 'input # expertise' 사이의 공백을 제거하십시오. 공백을 남기면 #expertise가 자식임을 의미합니다. 귀하의 경우에는 #expertise가 입력의 ID이므로 selector는 'input # expertise'입니다. – Siavas

답변

1

는, 필터링이 마크 업에 따라 정확하지 않았다. 입력 유형에 ID가 있기 때문에 $ ('input #expertise')를 $ ('# expertise')로 변경했습니다.

tagsInput을 초기화하지 않아서 예제가 작동하지 않았습니다. git-hub 예제에 맞게이 작업 스 니펫을 확인하십시오.

 var citynames = new Bloodhound({ 
 
      datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), 
 
      queryTokenizer: Bloodhound.tokenizers.whitespace, 
 
      prefetch: { 
 
       url: 'https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/assets/citynames.json', 
 
       filter: function (list) { 
 
        return $.map(list, function (cityname) { 
 
         return { name: cityname }; 
 
        }); 
 
       } 
 
      } 
 
     }); 
 
     citynames.initialize(); 
 

 
     $('input').tagsinput({ 
 
      typeaheadjs: { 
 
       name: 'citynames', 
 
       displayKey: 'name', 
 
       valueKey: 'name', 
 
       source: citynames.ttAdapter() 
 
      } 
 
     });
<link href="https://cdn.jsdelivr.net/bootstrap.tagsinput/0.8.0/bootstrap-tagsinput.css" rel="stylesheet"/> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap-theme.min.css" rel="stylesheet"/> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/> 
 

 

 
<div class="form-group"> 
 
    <label class="col-lg-3 control-label">Expertise</label> 
 
    <div class="col-lg-5"> 
 
     <input type="text" name="cities" id="expertise" class="form-control" /> 
 
    </div> 
 
</div> 
 
<div class="form-group"> 
 
    <label class="col-lg-3 control-label">Interests</label> 
 
    <div class="col-lg-5"> 
 
     <input type="text" name="cities1" id="interests" class="form-control" value="" data-role="tagsinput" /> 
 
    </div> 
 
</div> 
 
    
 

 

 

 

 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script> 
 
<script src="https://cdn.jsdelivr.net/bootstrap.tagsinput/0.8.0/bootstrap-tagsinput.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/typeahead.js/0.11.1/typeahead.bundle.min.js"></script>

+0

예, 실수를 지적 해 주셔서 감사합니다. 여기에서 주목할 점은 위의 코드 작업을 수행하기 위해 입력 값과 데이터 역할 속성을 제거해야한다는 것입니다. 그런 다음 지정된 값을 올바르게 렌더링하지만 새 항목을 추가하지 못하도록합니다. 새 항목을 추가하는 방법이 있습니까? – user596502

+0

유형 헤드가 작동하지 않는 것 같습니다. 위의 스 니펫에서 시도한 경우에도 스크립트 오류가 발생합니다. – user596502

+0

그래, 나도 그걸 알아 챘어. 예를 들어, 입력 마크 업에는 이러한 속성 (value 및 data-role)이 없습니다. 내 생각에 마크 업을 통해 초기화하려면 data-role = "tabsinput"을 사용한다. 프로그래밍 방식으로 초기화하려는 경우 비워 두십시오. – n0m4d