javascript - 如何在ajax上初始化selectize?

标签 javascript jquery ajax selectize.js

我必须填充 selectize从ajax获取数据后。但它在 ajax success 中不起作用。

HTML

<select name="hospital" id="store_hospital">
   <option value="" disabled selected>Choose Hospital</option>
   <?php
     foreach ($hospitals as $hospital) {
   ?>
   <option value="<?php echo $hospital->uid ?>"><?php echo $hospital->name ?></option>
   <?php
   }
   ?>
</select>
<select id="select-to" class="contacts" placeholder="Pick some people..."></select>

JS

$('#store_hospital').on('change', function () {
  var value = $('#store_hospital').val();
  $.ajax({
     type: 'GET',
     url: "/get-store-clients/" + value,
     success: function (data) {
         console.info(data);
     },
     error: function (jqXHR, textStatus, errorThrown) {
            }
        });
    });
$('#select-to').selectize({
        persist: false,
        maxItems: null,
        valueField: 'email',
        labelField: 'name',
        searchField: ['first_name', 'last_name', 'email'],
        sortField: [
            {field: 'first_name', direction: 'asc'},
            {field: 'last_name', direction: 'asc'}
        ],
        options: [
            {email: 'nikola@tesla.com', first_name: 'Nikola', last_name: 'Tesla'},
            {email: 'brian@thirdroute.com', first_name: 'Brian', last_name: 'Reavis'},
            {email: 'someone@gmail.com'}
        ],
        render: {
            item: function (item, escape) {
                var name = formatName(item);
                return '<div>' +
                        (name ? '<span class="name">' + escape(name) + '</span>' : '') +
                        (item.email ? '<span class="email">' + escape(item.email) + '</span>' : '') +
                        '</div>';
            },
            option: function (item, escape) {
                var name = formatName(item);
                var label = name || item.email;
                var caption = name ? item.email : null;
                return '<div>' +
                        '<span class="label">' + escape(label) + '</span>' +
                        (caption ? '<span class="caption">' + escape(caption) + '</span>' : '') +
                        '</div>';
            }
        },
        createFilter: function (input) {
            var regexpA = new RegExp('^' + REGEX_EMAIL + '$', 'i');
            var regexpB = new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i');
            return regexpA.test(input) || regexpB.test(input);
        },
        create: function (input) {
            if ((new RegExp('^' + REGEX_EMAIL + '$', 'i')).test(input)) {
                return {email: input};
            }
            var match = input.match(new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i'));
            if (match) {
                var name = $.trim(match[1]);
                var pos_space = name.indexOf(' ');
                var first_name = name.substring(0, pos_space);
                var last_name = name.substring(pos_space + 1);

                return {
                    email: match[2],
                    first_name: first_name,
                    last_name: last_name
                };
            }
            alert('Invalid email address.');
            return false;
        }
    });

如何在 selectize 中显示从 ajax 获取的值??

最佳答案

有添加/更新/删除/清除 api https://github.com/selectize/selectize.js/blob/master/docs/api.md 如果你不想重新初始化它

// initialize the Selectize control
var $select = $('select').selectize(options);

// fetch the instance
var selectize = $select[0].selectize;

$ajax.success = function(data) {
  selectize.clearOptions();
  for (var i in data) {
    selectize.addOption(i, data[i]);
  }
  selectize.refreshOptions()
}

关于javascript - 如何在ajax上初始化selectize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38843587/

相关文章:

javascript - jquery datepicker 与 codeigniter 问题

javascript - 无法使对象相等

javascript - Elasticsearch 前缀匹配消失,未添加 (QueryString)

javascript - axios 几个 `.then` promise - 如何组合它们?

javascript - 为什么会在不应该发生的情况下发生此错误?

jquery 选择器 - 选择每个表行内的第二个跨度子级

javascript - ajax返回数据后用jquery改变div的高度

javascript - 在身份验证中使用 jQuery 和 AJAX 重定向页面是否安全

ajax - Jquery .height 和 .width 在 ajax 内容上返回错误的数字

JavaScript 按字符数过滤 &lt;input&gt; 值的数组