我有一个动态表,控件在it.The中,所有控件的id都是客户端生成的,并得到像name_of_control#这样的id,'#‘是行号……
我正在使用ajax调用创建行客户端,并将其追加到表中:
var result = null;
$.ajax({
url: '../FormConsist/AddNewRow',
type: 'GET',
async: false,
success: function (data) {
result = data;
}
});
$("#table").append(result);
生成的动态中的一些元素可以回发到服务器上。像select元素标准一样,通过is(:focus)可以很好地工作,但不能在select2上工作。我无法在select2上获取.is(':focus')
值(true或false)。所以,我正在检查元素是否发生了这样的变化:
$(document).on("change", "#table tr", function () {
var row_index = $(this).index() + 1;
if ($(this).find('#drop' + row_index).is(':focus')) {
alert(''); //work select standard
}
$(this).find('#drop' + row_index)is(':focus')) {
alert('');//this don't work!!! It's a select 2 drop down
});
});
我怎么知道'select 2‘的值什么时候改变?在创建表的行之前,我没有id的'select 2‘上可以绑定一个事件吗?
也许吧
$(document).on("change", "#table tr", function (){...}
不是验证此行中的控件是否已更改的方法。
发布于 2019-09-18 18:16:37
最后,如果找到了解决方案:
$(文档).on(“更改”,‘id^=控件#’,函数(e) { ... }
将在select2更改为value时引发事件!这样,每个以id 'control#‘开头的下拉列表都会被抛出。
https://stackoverflow.com/questions/57949327
复制