javascript - 如何使用ajax更新select2下拉列表中的数据

标签 javascript jquery ajax jquery-select2

我有一个用于位置的 select2 下拉列表。select2 数据在页面加载时初始化。我想使用 ajax 定期更新数据。但是当我更新 select2 的数据时,select2 下拉列表将变为只读

    jQuery("#e10_2").select2({
        allowClear: true,
        minimumInputLength: 1,
        data:{ results: locationls, text: function(item) { return item.text; }},
        formatSelection: format,
        formatResult: format
    }); 

最佳答案

我不太明白你的问题,认为它需要一些澄清 - 但据我所知(我遇到了这个问题,并在谷歌搜索时发现了你的问题......)

当我第一次加载页面时,我运行以下 JavaScript,以便对所有下拉选择框进行样式设置并使用 select2:

$('select').select2();

但正如您的标题所述,我下面的代码通过将下拉列表更新为一组新数据来工作 - 其中我的 /store/ajax_get_zones 函数返回选项的 HTML:

$(function() {
    $('#country').on('change', function() {
        $.post("/store/ajax_get_zones", {
            country_id: $('#country').val()
        }, function(e) {
            if (e)
                $("#state").html(e).select2();
        })
    });
});

您所要做的就是在更新数据后对元素调用.select2()

屏幕截图

从默认的美国开始:

Starting/Default United States

然后,当您更改国家/地区时,状态下拉列表也会更改(ajax 更新了原始选择的内部 HTML,同时仍以 select2 为主题

Changing the country results in the changing of the state dropdown

关于javascript - 如何使用ajax更新select2下拉列表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19899983/

相关文章:

javascript - 获取调整大小后的图像的 clientWidth 和 clientHeight

javascript - 如何使弹出窗口在屏幕上居中?

javascript - 在 Svelte 自定义方法中使用 getter/setter

javascript - 匹配符号的正则表达式 : ! $%^&*()_+|~- =`{}[]:";'<>?,./

asp.net - 如何从集线器类之外获取SignalR用户连接ID?

ruby-on-rails - 如何更新 ruby​​ on Rails 中的部分 View

php - ajax 调用后网页背景未更新

javascript - 如何在 amCharts 中每 5 秒翻转一次切片?

javascript - 将闪烁边框应用于 appcelerator 中的 View

javascript - 如何将 Javascript 项目添加到 IntelliJ Community Edition