使用 selectize api for listbox in selectize.js 设置默认值

Setting default values with selectize api for listbox in selectize.js

我试图在下拉列表框中设置页面加载时的默认值,该下拉列表框通过 ajax 调用加载值。无法按照文档中的建议使用 setValue 方法设置值。请帮忙。以下是项目中的代码片段

HTML

<select name="country" placeholder="Please Select Country  ..."></select>

数据人口JS代码

  $('[name="country"]').selectize({
    valueField: 'name',
    labelField: 'name',
    searchField: 'name',
    preload: true,
    create: false,
    render: {
      option: function(item, escape) {
        return '<div>' + escape(item['name']) + '</div>';
      }
    },

    load: function(query, callback) {
          $.ajax({
            url: '/countrydata',
            type: 'GET',
            error: function() {
                callback();
            },
        success: function(res) {
            callback(res);
        }
      });
    },
  });

默认值设置代码

$('[name="country"]').selectize();
$('[name="country"]')[0].selectize.setValue("Japan");

是否有可以绕过该问题的技巧?几天来我一直在努力完成这项工作。

感谢您的阅读。任何帮助将不胜感激。

你很接近,但我认为你的问题是你试图将值设置为列表中不存在的选项。您需要先添加选项:

$('[name="country"]').selectize();
var item = {};
item.name = "Japan"; //Based on your render function, which uses item['name'] and labelField, searchField, etc.
$('[name="country"]')[0].selectize.addOption(item);
$('[name="country"]')[0].selectize.setValue(item.name);