2015-01-20 100 views
0

我想使用selectize.js從基於用戶輸入的數據庫填充文本框,但它不是在下拉內呈現。我從數據庫中獲取正確的數據,但不知道如何讓它呈現。也許JSON形式不正確?selectize不會渲染內部下拉

這裏的JS:

var $select = $('#tags').selectize({ 
     delimiter: ',', 
     persist: false, 
     valueField: 'PKID', 
     labelField: 'TAG', 
     searchField: ['TAG'], 
     maxOptions: 10, 
     create: true, 
     render: { 
      option: function (item, escape) { 
       return '<div>' + escape(item.TAG) + '</div>'; 
      } 
     }, 
     load: function (query, callback) { 
      if (!query.length) return callback(); 
      $.ajax({ 
       url: '/components/nl', 
       type: 'POST', 
       dataType: 'json', 
       data: { 
        method: 'getTags', 
        tag: query, 
        maxresults: 10 
       }, 
       error: function() { 
        callback(); 
       }, 
       success: function (res) { 
        callback(res); 
       } 
      }); 
     } 
    }); 

這裏的輸入框:

<input id="tags" class="selectize" type="text" name="tags" value="" placeholder="Tags separated by commas (optional)"> 

下面是如果該人開始鍵入「救命稻草」什麼正在返回。

{"COLUMNS":["PKID","TAG"],"DATA":[[1475,"strawberries"]]} 

這正是它應該返回,但不知道爲什麼我沒有看到「草莓」作爲下拉選擇。我只看到我輸入的「稻草」。

+0

這是代碼ColdFusion的文件或者是''##一個錯字?在'render'中,item.TAG是什麼?不匹配您返回的數據中的任何內容。是否在控制檯中引發錯誤? – charlietfl 2015-01-20 20:27:22

+0

##是coldfusion,但我在這個問題中擺脫它,所以它不會混淆某人。沒有錯誤被拋出。 item.TAG應該是「草莓」的價值。 – user1431633 2015-01-20 20:39:20

+0

'DATA'是一個數組數組,沒有屬性'TAG',而是嘗試'item [1]'。承認我不知道selectize.js – charlietfl 2015-01-20 20:40:53

回答

0

的問題是代碼期待:

[{"PKID":1475,"TAG":"strawberries"}] 

但我給它:

{"COLUMNS":["PKID","TAG"],"DATA":[[1475,"strawberries"]]}