Javascript Selectize.js destroy()方法更改选择值
我正在项目中使用selectize.js。我需要做的是克隆表单的一部分(使用选定的元素)并将其附加到表单的末尾 我决定在克隆之前销毁已选择的元素,并在附加新的子窗体之后再次初始化selectize 以下是销毁选定元素的代码: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
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);
},
在这里你可以下载我的文件