gpt4 book ai didi

javascript - select2第一次动态添加不显示

转载 作者:行者123 更新时间:2023-11-30 15:45:37 29 4
gpt4 key购买 nike

我正在使用 Jquery,我有一个用例可以在单击按钮时动态添加一些元素。

动态添加'select'时,第一次点击添加按钮时不显示select2,而是显示一个简单的'select',当我们再次点击添加按钮时,之前的所有' select' 格式化为 select2。

我需要当我们点击添加按钮时,第一个生成的选择也应该得到 select2。

脚本如下:

var container = $(document.createElement('div')).css({
padding: '5px', margin: '20px', width: '400px', border: '1px solid',
borderTopColor: '#999', float: 'left', borderBottomColor: '#999',
borderLeftColor: '#999', borderRightColor: '#999'
});

var iCnt = 0;
function add()
{
if (iCnt <= 19) {

iCnt = iCnt + 1;

$(container).append($("<select class ='selinput' id=tb" + iCnt + " " + "value='Text Element " + iCnt + "' style='float : left; margin-right:70px;'>"));

//Add Property Selector

$(container).append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
$(container).append($("<select class ='selinput2" + iCnt + "'' id=tb2" + iCnt + " " + "value='Text Element " + iCnt + " ' ><option value='equalto'>A</option><option value='notequalto'>B</option></select>"));

$(container).append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
// ADD TEXTBOX.
$('select').select2({width : '20%'});
$(container).append('<input type=text class="input" id=tbtext' + iCnt + ' ' +
'placeholder="Value ' + iCnt + '" style="float : center;" /><br><br>');


// SHOW SUBMIT BUTTON IF ATLEAST "1" ELEMENT HAS BEEN CREATED.
if (iCnt == 1) {

var divSubmit = $(document.createElement('div'));
$(divSubmit).append('<input type=button class="bt"' +
'onclick="GetTextValue()"' +
'id=btSubmit value=Submit />');

}

// ADD BOTH THE DIV ELEMENTS TO THE "main" CONTAINER.
$('#main').after(container, divSubmit);
}
// AFTER REACHING THE SPECIFIED LIMIT, DISABLE THE "ADD" BUTTON.
// (20 IS THE LIMIT WE HAVE SET)
else {
$(container).append('<label>Reached the limit</label>');
$('#btAdd').attr('class', 'bt-disable');
$('#btAdd').attr('disabled', 'disabled');
}
}

以下是js fiddle的链接:

https://jsfiddle.net/hns0qk2b/43/

请指教。

最佳答案

您唯一的问题是您需要在初始化 select2 之前将新元素添加到 DOM。先将元素添加到 DOM,然后您的代码才能运行。

// ADD BOTH THE DIV ELEMENTS TO THE "main" CONTAINER.
$('#main').after(container, divSubmit);

// Initialize select2
$('select').select2({width : '20%'});

查看应用于 fiddle 的这些更改: https://jsfiddle.net/zjafvr3u/1/

关于javascript - select2第一次动态添加不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40113600/

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