2014-09-20 2 views
0

에서로드 변수를 기다리는 방법 :JQuery와 -이 같은 jqyery 기능이 아약스

var tagList = []; 
    var suggestedTags = []; 
    var tags; 

    $("#tags-add").keyup(function (e) { 
     var regex = new RegExp("^[a-zA-Z0-9]+$"); 
     var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
     if (regex.test(str) || e.keyCode == 8) { 
      query = $("input.tags-input").val(); 
      var form_data = { 
       query: query 
      }; 
      $.ajax({ 
       type: "POST", 
       url: base_url + "ajax/tags/get_tags", 
       dataType: 'json', 
       async: false, 
       data: form_data, 
       success: function (data) { 
        tagList = data; 
       }, 
       complete: function() { 
       } 
      }); 
      alert("script is not working without this alert"); 
      loadTags(); 
      var tags = $('#tags-add').tags(); 
      $('#tags-add').tags().suggestions = suggestedTags; 
      $('#tags-add').tags().restrictTo = suggestedTags; 
      return false; 
     } 
    }); 

    var loadTags = function() { 
     suggestedTags = []; 
     $.each(tagList, function (index, item) { 
      suggestedTags.push(item.tagName); 
     }); 
    }; 

내가 여기에서 부트 스트랩 태그를 사용하고 있습니다 : 때이 코드에서 경고를 제거한다 https://github.com/maxwells/bootstrap-tags 문제를, 전체 자동 완성 기능이 작동을 멈 춥니 다. 성공, 완전한 콜백에서로드 태그를 사방에 넣으려고했습니다. 나는 ajax 옵션에 async : false를 넣었지만 여전히 스크립트는 경고없이 작동하지 않습니다. 무엇이 잘못 되었나요? 도와주세요. 그것은 10 시간 이상 걸렸습니다. 어떻게 작동 시킬지 전혀 모르겠습니다.

+1

에 아약스 호출에서 데이터를 필요로하는 모든 코드를 넣어 success 함수를 호출하고 async = false를 제거하십시오. 또는 이미 테스트 된 일부 코드를 얻으십시오. http://jqueryui.com/autocomplete/ – mplungjan

+0

이러한 코드가 성공하면 오류 메시지가 나타납니다. – worldask

답변

0

당신은 성공 또는 전체 다른 접근 방식 중 하나의 태그를로드해야는 전제 ... 을 사용하는 것입니다하지만,이 방법은 간단합니다 :)

complete: function() { 
      //here you load the tags 
      loadTags(); 
      };