Php 为什么使用AJAX动态添加的选择输入不起作用?
我在codeigniter视图中使用Jquery,通过类似这样的ajax调用获取HTML定义中的表单字段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
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我已经尝试过这个,但仍然不起作用。