第一次动态添加Select2时不显示
Select2 not displayed when added dynamically for the first time
我正在使用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(" ");
$(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(" ");
// 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%'});
看到这些变化适用于小提琴:https://jsfiddle.net/zjafvr3u/1/
相关文章:
- Select2-使用自定义模板时不显示占位符
- 当使用多个false时,Select2显示未定义
- 如何使用 select2 显示为文本框
- jquery-select2显示默认选择的第一个值
- Select2 with AJAX显示在模态后面
- 如何对select2自动完成结果进行排序,只显示以第一个字母开头的项目
- 来自服务器的响应未显示在 Select2 下拉列表中
- Select2(多选) - 如果至少已经选择一个元素,如何显示备用占位符
- JQuery Select2子项未显示为选中
- Select2.js-如何防止显示标签
- 使用切换或类似方式在Select2中显示/隐藏选项
- Select2下拉列表允许在用户键入时按用户显示新值
- 如何在Select2中显示结果后触发操作?
- 显示Select2多选项不显示所有结果
- 第一次动态添加Select2时不显示
- js中的Select2可见绑定只显示而不隐藏
- jQuery Select2远程数据加载:显示选项而不是占位符
- Select2不显示initSelection值
- 如何使用ajax在select2中显示多个结果数据
- 使用select2.js为选择文本设置不同的显示值