我有一个在页面加载时从数据库加载的问题列表。我正在解析问题列表,并为每个问题添加了一个复选框。我打算将每个复选框的id添加到一个数组中,然后我将它传回数据库进行进一步处理。
$.each(data.d.crit1,function(key,value){
var rowId = 'QID_0'+value.CLASS_QUESTION_ID;
var codes = value.CODES ? value.CODES : '';
$("#tblCrit1").append("<tr class='row' id='"+rowId+"'></tr>");
$("#"+rowId).addClass('critical1').css('cursor','pointer')
.append("<td class='chckbox'><input type='checkbox' id='cbx_Q"+value.CLASS_QUESTION_ID+"'/></td>")
.append("<td>"+value.QUESTION_TEXT+"</td>")
.append("<td>"+codes+"</td>");
});
我试图将一个on change事件处理程序附加到复选框,但由于某种原因,我无法触发事件。
我尝试了一些我认为应该有效的方法。类似的东西:
$("input[type=checkbox]").on('change',function(){...});
和其他一些没有运气的排列。
我显然做错了什么,但我似乎无法弄明白。任何帮助将不胜感激。
答案 0 :(得分:1)
尝试将选择器$("input[type=checkbox]")
更改为$("input[type='checkbox']")
编辑:你应该有这样的东西:
$('#tblCrit1').on("click", "input[type='checkbox']", function(){...});
加载数据后附加处理程序。
答案 1 :(得分:0)
如果没有看到两个摘录的背景,很难确切地知道,但我希望
$("input[type=checkbox]").on('change',function(){...});
可以在将复选框添加到页面的方法之前运行。 on
函数仅绑定到运行时页面上的元素。
我建议使用
$(document).on('change', 'input[type=checkbox]', function () {...});
将监听器附加到document
,任何冒泡并匹配选择器的更改事件都会触发回调。
或者将事件监听器附加到创建它的方法中的输入,我认为这样会更整洁。