Php 为什么使用AJAX动态添加的选择输入不起作用?

Php 为什么使用AJAX动态添加的选择输入不起作用?,php,ajax,codeigniter,jquery-select2,Php,Ajax,Codeigniter,Jquery Select2,我在codeigniter视图中使用Jquery,通过类似这样的ajax调用获取HTML定义中的表单字段 function getaddinfo(){ var modtabgrp = $("#modtabgrp").val(); $.ajax({ url:base_url+"Base/gridaddfetch?modtabgrp="+modtabgrp, async:false

我在codeigniter视图中使用Jquery,通过类似这样的ajax调用获取HTML定义中的表单字段

     function getaddinfo(){
          var modtabgrp = $("#modtabgrp").val();
             $.ajax({
                url:base_url+"Base/gridaddfetch?modtabgrp="+modtabgrp,
                async:false,
                cache:false,
                success :function(data) {
                $('#liveform').append(data);

              },
          }); 
       }
现在此响应包含基于select2插件的输入,我能够正确显示所有输入,但select2输入未启用。 通过点击添加图标启用select2插件输入的功能如下:

      $("#addicon").click(function(){
          $('#stateid').select2('val','2');
          $('#tabgropdropdown').select2('val','1');
        }
我还要确保在单击#addicon Add按钮之前,表单已加载并注入DOM树中。那么为什么#liveform Div中可用的#stateid和#tabgropdropdown元素没有启用呢


换句话说,为什么addbutton事件相关事件没有与动态添加的输入元素绑定

在调用ajax之后,您需要重新初始化该输入的select2()

function getaddinfo(){
          var modtabgrp = $("#modtabgrp").val();
             $.ajax({
                url:base_url+"Base/gridaddfetch?modtabgrp="+modtabgrp,
                async:false,
                cache:false,
                success :function(data) {
                $('#liveform').append(data);
                $('#stateid').select2();
                $('#tabgropdropdown').select2();  
              },
          }); 
}

使用$(document).on('click','#addicon',function(){[…]})@Roy我已经尝试过这个,但仍然不起作用。