Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 Selectize.js destroy()方法更改选择值_Javascript_Jquery_Selectize.js - Fatal编程技术网

Javascript Selectize.js destroy()方法更改选择值

Javascript Selectize.js destroy()方法更改选择值,javascript,jquery,selectize.js,Javascript,Jquery,Selectize.js,我正在项目中使用selectize.js。我需要做的是克隆表单的一部分(使用选定的元素)并将其附加到表单的末尾 我决定在克隆之前销毁已选择的元素,并在附加新的子窗体之后再次初始化selectize 以下是销毁选定元素的代码: var selectElements = $(plusButtonElement).parents(".subform_wrapper").first().find("> .subform_fields_wrapper").find("select"); $.ea

我正在项目中使用selectize.js。我需要做的是克隆表单的一部分(使用选定的元素)并将其附加到表单的末尾

我决定在克隆之前销毁已选择的元素,并在附加新的子窗体之后再次初始化selectize

以下是销毁选定元素的代码:

  var selectElements = $(plusButtonElement).parents(".subform_wrapper").first().find("> .subform_fields_wrapper").find("select");
$.each(selectElements, function(index, element){
    console.log(element);
    console.log($(element).val());    //Here we got value "10"
    $(element)[0].selectize.destroy();
    console.log($(element).val());    //Here we got value "A6"
});
它可以工作-元素转换为常规选择,但选择元素的值正在更改。有人面对过这个问题吗

我检查了selectize.js source,我唯一能说的是代码中的值发生了变化:

    self.$input
            .html('')
            .append(revertSettings.$children)
            .removeAttr('tabindex')
            .removeClass('selectized')
            .attr({tabindex: revertSettings.tabindex})
            .show();

嗨,Tamara是的,我认为这是Selectize.js的一个bug

我在selectize.js中修改了以下销毁方法

destroy: function() {
        var self = this;
        var selectedValue = self.$input.val();
        var eventNS = self.eventNS;
        var revertSettings = self.revertSettings;

        self.trigger('destroy');
        self.off();
        self.$wrapper.remove();
        self.$dropdown.remove();

        self.$input
            .html('')
            .append(revertSettings.$children)
            .removeAttr('tabindex')
            .removeClass('selectized')
            .attr({tabindex: revertSettings.tabindex})
            .show();

        self.$control_input.removeData('grow');
        self.$input.removeData('selectize');

        $(window).off(eventNS);
        $(document).off(eventNS);
        $(document.body).off(eventNS);

        delete self.$input[0].selectize;

        self.$input.val(selectedValue);
    },
在这里你可以下载我的文件