如何将初始化的selectizejs输入字段放在sweetalert

时间:2019-04-17 16:36:07

标签: javascript jquery html css selectize.js

我有一个包含DataTables的页面,每行上都有操作按钮。其中一个按钮应该会打开一个甜蜜的警报,其中包含我的selectizejs输入字段。因此,用户可以从列表中选择或删除选项,然后在甜蜜警报中单击“确定”以保存它。

我被困在初始化selectize元素并将其放入甜蜜警报之间的步骤。

我没有看到用于初始化swal组件中的selectizejs字段的选项,因此我尝试了很多事情来对其进行初始化,然后将其放置在sweetalert的content字段中。

在我的方法中,我在视图中创建了输入元素:

<input type="text" id="adminvollabels" class="adminvollabels-select" value="test1,test2,test3" placeholder="<?=lang("flow_company_skills_placeholder")?>" name="adminvollabels">

jQuery代码如下:

$('.vol-label-link').on('click', function(e) {
    e.preventDefault();
    var userId = $(this).data("user-id");

    var ele = $('<div class="row"></div>');
    ele.append('<div class="col-md-12"><label for="adminvollabels">testlabel</label></div>');

    $('.adminvollabels-select').selectize({
        delimiter: ',',
        persist: false,
        create: function(input) {
            return {
                value: input.toLowerCase(),
                text: input.toLowerCase()
            }
        }
    });

    ele.append('<div class="col-md-12"><div class="form-group">'+$('.adminvollabels-select')+'</div></div>');

    swal({
        title: res.VolLabelUpdateTitle,
        content: selectizeElement,
        icon: "info",
        buttons: {
            cancel: {
                text: res.BtnCancelText,
                visible: true,
                className: "btn-secondary"
            },
            confirm: "ok"
        }
    }).then(function (isConfirm) {
        if (isConfirm) {
            $.ajax({
                //Do AJAX stuff
            });
        }
    })
});

通过这种方法,我尝试执行以下步骤:

1)在HTML中创建输入元素

2)单击vol-label-link元素

3)(在JS中),使用所有div和col-md的对象创建一个临时DOM对象

4)(在JS中)将输入字段设为selectize.js字段

5)(在JS中)将此元素附加到我的临时DOM对象中

6)将此临时DOM对象放在SWAL的“内容”选项中。

关于6的注释:由于我认为SWAL内容选项仅允许原始HTML(我认为它对它执行parseHTML)。因此,我尝试在将完整的HTML DOM临时对象插入内容字段之前对其进行构建。

但是使用此代码,我的HTML看起来像这样:

<div class="col-md-12"><label for="adminvollabels">testlabel</label></div><div class="col-md-12"><div class="form-group">[object Object]</div></div>

我也一直在尝试使用.clone(),但是我无法在初始化的selectizejs字段上使用它。

0 个答案:

没有答案