【问题标题】:selectize.js doesn't work with remote urlselectize.js 不适用于远程 url
【发布时间】:2016-01-06 20:57:12
【问题描述】:

我正在使用这样的选择:

$('#category_field').selectize({           
       valueField: 'name',             
       searchField: 'name',
       delimiter: "/",           
       options: [],
       load: function(query,callback)
       {    
           if(!query.length) return callback();          
           $.ajax({
               url: '/categories/autocomplete',
               type: 'GET',
               dataType: 'jsonp',
               data: {                                    
               },
               error: function() {
                   callback();
               },
               success: function(res) {
                   callback(res.movies);
               } 
           });              
       }           
   }

);

"#category_field" 只是文本类型的表单输入。

我验证了 ajax 请求正在发出,来自服务器的响应如下所示:

[
  {
    "_id": {
      "$oid": "568bee09421aa908fe000009"
    },
    "depth": 0,
    "name": "math",
    "parent_id": null,
    "parent_ids": [],
    "picture": {
      "url": "/uploads/category/picture/568bee09421aa908fe000009/Screenshot________________.png",
      "thumb": {
        "url": "/uploads/category/picture/568bee09421aa908fe000009/thumb_Screenshot________________.png"
      }
    }
  }
]

我的问题是自动完成下拉菜单甚至没有显示,该怎么办?

编辑

我只是想提一下,我正在使用 bootstrap 3 ,输入字段和它的标签被包裹在 <div class=field>...</div> 内,这个 div 被包裹在表单中,表单被包裹在面板内的容器内。

这与问题有关吗?

【问题讨论】:

    标签: javascript selectize.js


    【解决方案1】:

    此响应看起来不是有效的 JSON。检查控制台,或/和使用 trycatch

    try { $.ajax(...) } catch (err) { console.error(err); }
    

    而JSONP是跨域方法,或许你可以试试删除它。

    【讨论】:

    • "jsonp" 导致错误功能运行,所以我尝试按照您所说的删除 dataType ,错误功能停止运行并且成功功能运行但没有出现自动完成菜单,我也尝试过数据类型设置为“json”
    • 并且 json 在线验证器返回 true(在将 integervalue 替换为数字等之后)嗯,但我只将对象放在数组中,你是说服务器应该返回 json 而不是数组?
    • 我知道这是一个有效的 json,我将响应复制到在线验证器中,我发布的有错误,抱歉,我已修复它们
    【解决方案2】:

    我注意到了什么

    1. 您没有向服务传递任何查询

    2. 您必须将 preLoad 设置为 true 才能加载选项,或者必须将 preLoad 设置为焦点以初始设置选项

    3. 您必须像您的响应一样使用数组初始化选项

    【讨论】:

      猜你喜欢
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多