需要帮助来解决我的视图页面(在codeigniter上工作)的ajax调用问题,有一个下拉列表和div部分。根据DropDown值,数据将在div部分中得到更改。我正在使用ajax调用(调用控制器中的方法)在dropdown change事件时上传div标签中的数据。Ajax调用在dropdown的第一个更改事件上工作正常,但当我在dropdown中第二次选择值时,ajax函数调用不起作用(第二次选择依此类推)。
My code is: VIEW PAGE =>
$(document).ready(function() {
$("body").on('change','#assettype_id',function(e){ // "assettype_id" is
dropdown id
//e.preventDefault();
var categoryval = $('#assettype_id :selected').val();
$.ajax({
type: 'POST',
cache: false,
url: 'http://my_path/index.php/assetcontroller/assignpc/'+ categoryval, // Based on "categoryval" data will change in div tag
dataType: 'html',
success: function(data) {
$( "#result" ).load( "http://my_path/index.php/assetcontroller/assignpc/"+ categoryval); // "result" is div tag id
$( "#result" ).html(categoryval);
},
});
return false;
});
});
为什么ajax调用在下拉“second time”更改事件中不起作用?
发布于 2018-06-03 09:00:17
您需要将.on('change')
事件包装到一个函数中,这样以后就可以随时调用它。
这是因为一旦您通过Ajax添加了新的html输出,此html还不知道您的更改事件!
因此,一旦使用$( "#result" ).load()
将Ajax输出添加到DOM中,就需要重新调用函数my_change_event()
如下所示:
$(document).ready(function() {
my_change_event();
});
function my_change_event(){
$( "#assettype_id" ).on( "change", function() {
$.ajax({
type: 'POST',
cache: false,
url: your_url,
success: function(data) {
// do something with data
// html output
my_change_event();
}
});
}
https://stackoverflow.com/questions/50656693
复制相似问题