在selectize.js中使用selectize api为listbox设置默认值

时间:2015-08-19 07:57:16

标签: 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");

我能解决这个问题吗?我现在一直试图让这项工作工作几天。

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

1 个答案:

答案 0 :(得分:3)

您已关闭,但我认为您的问题是您尝试将该值设置为列表中不存在的选项。您需要先添加选项:

$('[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);