2013-12-11 1 views
1

...JQuery와 tokeninput, 첫 번째 검색 내가 tokeninput 이상한 문제가

$("[name='business_list']").tokenInput({{businessList|raw}}, { 
     hintText: "{{ 'business.findBusiness'|trans }}", 
     noResultsText: "{{'no_results'|trans({},'app')|capitalize}}", 
     searchingText: "{{'searching'|trans({},'app')|capitalize}}", 
     prePopulate: {{businesses|raw}}, 
     onReady: function(){ 
      $("[name='business_list']").siblings(".token-input-list").find("#token-input-").focus(); 
     }, 
     onResult: function(items){ 
      items.push({ 
       value: "aaa", 
       label: "<span>aaa</span>" 
      }) 

      console.log(items); 
      //return items; 
     } 
    }); 

이 작동하지 않습니다 그리고 그것은 다음과 같이 작동 예를 들어 를 I '는'이 처음으로 보여줍니다 입력 할 때 ' 결과 없음 '(하지만 콘솔 로그에서 7 개의 객체를 찾았 음을 알 수 있습니다). 'a'를 삭제하고 다시 입력하면 정상적으로 작동합니다. 하지만 ... 예를 들어 'z'라고 입력하면 다시 동일하게 나타납니다. 그것은 '결과가 없음'을 보여 주지만 4 개의 객체를 발견했으며 삭제 및 다시 입력 한 후에 다시 객체를 표시 한 것을 볼 수 있습니다 ... 아이디어가 있으십니까?

그것은 'onResult'기능없이 잘 작동하지만 어떤 결과를 하나 개의 객체를 추가 할 수 있지만 그것을 잘 작동하지 않습니다 ...

문제가 해결
+0

I 'return items'이 실제 코드에서 주석 처리되지 않았다고 가정합니다! 공유 할 수있는 예제가 있습니까? 아니면 똑같은 jsfiddle을 만들 수 있습니까? 흥미로운 문제이고, 나는 분명히 잘못된 것을 볼 수 없습니다! – Chris

+0

몇 시간 전에이 문제를 해결했습니다. 정확한 코드로 답변을 게시했습니다. –

+0

문제점은 'id'필드가 누락 되었습니까? 재미있는 ... 나 한테 새로운 것! 공유 해줘서 고마워! – Chris

답변

0

코드 :

$("[name='business_list']").tokenInput({{businessList|raw}}, { 
      hintText: "{{ 'business.findBusiness'|trans }}", 
      noResultsText: "{{'no_results'|trans({},'app')|capitalize}}", 
      searchingText: "{{'searching'|trans({},'app')|capitalize}}", 
      prePopulate: {{businesses|raw}}, 
      onReady: function(){ 
       $("[name='business_list']").siblings(".token-input-list").find("#token-input-").focus(); 
      }, 
      onResult: function(items){ 
       var value = $('#token-input-').val(); 
       items.push({ 
        label: "<span class='new-business'><img src='{{ asset('bundles/cloudcrm/images/business.png') }}' style='margin-right: 5px;'>{{ 'deals.newDeal.addBusiness'|trans({},'crm')|capitalize }}<strong>" + " " + value + "</strong></span>", 
        id: "new", 
        value: value 
       }); 
       return items; 
      }, 
      onAdd: function(item){ 
       if($(item.label).hasClass("new-business") == true){ 
        $("[name='business_list']").tokenInput("remove", item); 
        $(".modal-business-add").modal('show'); 
       } 
      } 
     });