首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ajax请求将select选项重建为mobius1-selectr

通过ajax请求将select选项重建为mobius1-selectr
EN

Stack Overflow用户
提问于 2017-05-29 14:02:16
回答 1查看 360关注 0票数 0

使用mobius1-selectr (https://github.com/Mobius1/Selectr)

嗨,我不知道我是不是在为这个写正确的代码。我有3个需要jquery根据另一个select的结果填充的选择。我试图在数据中使用新函数,但是元素不会重新加载新的选项内容。

我有这样的元素:

<select id="dimensions_ids" multiple class="form-control hidden-input" name="dimensions_ids[]" tabindex="-1" aria-hidden="true" disabled=""><option value="0"></option></select>

一个选项是必需的,因为我不能创建没有任何选项的selectr。

所以,首先我要初始化元素如下:

代码语言:javascript
复制
 `let selectDimensionsIds = new Selectr('#dimensions_ids', {         clearable: true     });     selectDimensionsIds.disable();` 

A我正在尝试这样做,但这些选项获得了刷新:

代码语言:javascript
复制
 `function populateDimensions(areasId) {         let values = {             'areas': areasId         };         $.ajax({             url: '/getdimensionsbyareas',             type: 'GET',             data: values,             dataType: 'json',             success: function(result) {                 let dimensions = JSON.stringify(result);                 selectDimensionsIds.destroy();                selectDimensionsIds = new Selectr('#dimensions_ids', {                     dimensions,                     clearable: true,                     multiple: true                 });                 selectDimensionsIds.enable();             },         });     }` 

如果有人能帮我。我很感激。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-29 14:58:06

所以,我做了这个,解决了我的问题。

代码语言:javascript
复制
function populateDimensions(areasId) {
    let values = {
        'areas': areasId
    };
    $.ajax({
        url: '/getdimensionsbyareas',
        type: 'GET',
        data: values,
        dataType: 'json',
        success: function(result) {
            let selectHtml = '';
            if (result.data.length > 0) {
                $.each(result.data, function (index, value) {
                    selectHtml += '<optgroup label="' + value.text + '">';
                    $.each(value.children, function (index, value) {
                        selectHtml += '<option value="' + value.value + '">' + value.text + '</option>';
                    });
                });
                selectDimensionsIds.destroy();
                $('#dimensions_ids').empty();
                $('#dimensions_ids').append(selectHtml);
                selectDimensionsIds.render({
                    clearable: true,
                    multiple: true
                });
                selectDimensionsIds.enable();
            } else {
                selectDimensionsIds.destroy();
                $('#dimensions_ids').empty();
                $('#dimensions_ids').append('<option>Selecione uma ou mais áreas</option>');
                selectDimensionsIds.render({
                    clearable: true,
                    multiple: true
                });
                selectDimensionsIds.disable();
            }
        },
    });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44244385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档