gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:44:48 24 4
gpt4 key购买 nike

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

我决定在克隆之前销毁选定的元素,并在附加新子表单后再次初始化选择。

这是销毁选定元素的代码:

  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 源代码,我唯一能说的是此代码中的值已更改:

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

最佳答案

嗨,Tamara,是的,我认为这是 Selectize.js 的一个错误。

我在 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);
},

在这里您可以下载我的selectize.js文件。

关于javascript - Selectize.js destroy() 方法更改选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27911184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com