Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择“重新加载”下拉列表_Javascript_Jquery_Json_Autocomplete_Selectize.js - Fatal编程技术网

Javascript 选择“重新加载”下拉列表

Javascript 选择“重新加载”下拉列表,javascript,jquery,json,autocomplete,selectize.js,Javascript,Jquery,Json,Autocomplete,Selectize.js,我有一个下拉列表,id为“selectCountry”,由ajax填充,一旦成功,我就绑定Selectize $('#selectCountry').selectize({ create: true, sortField: 'text' }); 当我用ajax重新绑定我原来的下拉列表,并在成功后尝试重新加载/重新绑定或刷新旧的selectize auto complete框时,旧列表上不会有任何更改 有没有办法重新加载或刷新selectize下拉列表?我试过“clearOpt

我有一个下拉列表,id为“selectCountry”,由ajax填充,一旦成功,我就绑定Selectize

$('#selectCountry').selectize({
    create: true,
    sortField: 'text' 
});
当我用ajax重新绑定我原来的下拉列表,并在成功后尝试重新加载/重新绑定或刷新旧的selectize auto complete框时,旧列表上不会有任何更改

有没有办法重新加载或刷新selectize下拉列表?我试过“clearOptions()”和“refreshOptions()”

另外,我不想直接从ajax绑定selectize

好的,现在我在上为这个问题添加工作示例

请帮帮我:(任何建议对我都很好。
非常感谢

看起来你也打开了一个,IMHO,这不是一个很好的利用项目问题的方法

我在那里回答了,我会在这里重复回答,以防对其他人有用

您不应该从原始标记中重新创建Selectize组件。您应该使用它来更新其选项,使用您猜测的clearOptions(),然后使用addOption()(尽管是单数形式,但它接受一个数组)。 我更新了你的小提琴(+1用于制作一把),以显示:

有关部分是:

var selector;
$('#button-1').on('click', function () {
    selector = $('#select-tools').selectize({
        maxItems: null,
        valueField: 'id',
        labelField: 'title',
        searchField: 'title',
        options: [{
            id: 1,
            title: 'Spectrometer',
            url: 'http://en.wikipedia.org/wiki/Spectrometers'
        }, {
            id: 2,
            title: 'Star Chart',
            url: 'http://en.wikipedia.org/wiki/Star_chart'
        }],
        create: false
    }).data('selectize');
});

$('#button-2').on('click', function () {
    console.log(selector);
    selector.clearOptions();
    selector.addOption([{
            id: 1,
            title: 'Spectrometer',
            url: 'http://en.wikipedia.org/wiki/Spectrometers'
        }, {
            id: 3,
            title: 'Electrical Tape',
            url: 'http://en.wikipedia.org/wiki/Electrical_tape'
        }]);
});

我是如何找到答案的,并且它是有效的

只需添加这行代码及其工作原理

$('#select-tools').selectize()[0].selectize.destroy();
您也可以这样做:

$('#whateverYouCalledIt').selectize()[0].selectize.clear();

仅用于清除所选内容。它不会清除您的选择列表。

您也可以尝试以下操作:(,没有用。您可以发布更多代码吗?还有,需要更多代码:),实际上其他代码与jtable.org相关,上面的代码是完整的,正在进行第一次下拉绑定。您没有回答我的问题,实际上当我想单击第一个按钮时,它将绑定该值,当我单击第二个按钮时,它将绑定第二个选项,并将从第二个选项继续绑定到第一个选项。我找到了解决方案,并编写了a回答。请投赞成票:)因为我无法投票表决我自己的答案。@ObaidAhmed我仍然没有兴趣重新创建Selectize控件,而不是更新它,但如果这确实是您想要/需要做的,我很高兴您找到了解决方案。顺便说一句,不要忘记关闭您打开的问题…有没有办法强制Selectize从原始版本重新填充,而不必销毁Selectize并丢失现有设置?