进行动态创建的select2

时间:2019-01-24 04:39:38

标签: javascript

我需要创建另一个Select2元素,但是当我创建一个新的Select2元素时,前一个元素不起作用。

function make(){
    $('.agregar_unidad').each(function(index) {
        if ($(this).html().length!=27) {
            //$(this).children('select').select2("destroy");
        } else {
            $(this).html('<select class="itemNameUnidad" form-control id="nombre_Unidad_Ejecutora" name="itemName"></select>');
        }
        $(this).find('select').select2({
            placeholder: '--- Seleccione la unidad ---',
            alowClear:true,
            ajax: {
                url: '<?php echo base_url(); ?>home/getUnidad',
                dataType: 'json',
                delay: 250,
                processResults: function (data) {
                    return {
                        results: data
                    };
                },
                cache: true
            }
        });
    });
}

2 个答案:

答案 0 :(得分:0)

因为您正在初始化DOM中的所有select元素。这就是为什么它会使用您初始化的设置影响到第一次选择的原因。

尝试将脚本初始化为$('。agregar_unidad')。closest('select')。select2({settings})

答案 1 :(得分:0)

var nombre = 0;
function refresh(){
 $( ".agregar_unidad" ).last().html('<select class="itemNameUnidad" form-control      id="nombre_Unidad_Ejecutora'+nombre+'" name="itemName"></select>');
     nombre++;
  $('.itemNameUnidad').last().select2({
    placeholder: '--- Seleccione la unidad ---',
    alowClear:true,
    ajax: {
        url: '<?php echo base_url(); ?>home/getUnidad',
        dataType: 'json',
        delay: 250,

        processResults: function (data) {

            return {
                results: data
            };
        },
        cache: true
    }

});

         }

最后这对我有用,这是一个解决方案,但是如果您能告诉我如何做得更好,那将是一件好事,因为我只是一个学生,感谢您的帮助...