问题描述
我有以下数据表脚本工作。单击复选框时,我需要另一个脚本函数来激活。这不起作用,有谁知道我做错了什么?我检查了控制台,没有发送任何帖子,也没有错误日志。
数据表脚本
<script type="text/javascript">
var checkCol = 4; //checkBox column
$(document).ready(function () {
$('#accountTable').dataTable({
rowId: 'id',"processing": true,select: true,"ajax": "selectdatatable_allacc.PHP","columns": [
{
data: 'name'
},{
data: 'email'
},{
data: 'password'
},{
data: 'rang'
},{
data: 'do_lead'
},{
data: 'notes',render: function (data,type,row,Meta) {
return '<font color=' + row.cat_color + '>' + data + '</font>';
}
},{
'data': null,title: 'Dead',wrap: true,"render": function (item) {
return '<input type="submit" value="Dead" style="width:57px !important;" class="example_e" onClick="mobreset(' +
item.id + ') "/>'
}
},title: 'Login',"render": function (item) {
return '<input type="submit" value="Login" style="width:57px !important;" class="example_e" onClick="mobLogin(' +
item.id + ') "/>'
}
},title: 'Action 2',"render": function (item) {
return '<input type="button" value=" Edit " id= ' + item.id +
' style="width:57px !important;" class="example_c edit_data" />'
}
},],columnDefs: [{
targets: [checkCol],row) {
if (type ===
'display') { //if column data is 1 then set attr to checked,use row id as input id (plus prefix)
return '<input type="checkBox" ' + ((data == 1) ? 'checked' : '') +
' value="' + row.id + '" class="active" />';
}
return data;
},className: "dt-body-center"
},{
targets: 0,select: {
style: 'os',selector: 'td:not(:nth-child(2))'
},});
});
</script>
复选框被选中或未选中时调用的脚本
<script type="text/javascript">
$(document).ready(function () {
$("input.active").click(function () {
// store the values from the form checkBox,then send via ajax below
var check_active = $(this).is(':checked') ? 1 : 0;
var check_id = $(this).attr('value');
$.ajax({
type: "POST",url: "dolead.PHP",data: {
id: check_id,active: check_active
},});
return true;
});
});
</script>
解决方法
您可以尝试使用 jquery on
函数来完成这项工作
<script type="text/javascript">
$(document).ready(function () {
$("#accountTable").on("click","input.active",function () { // notice the on function
// store the values from the form checkbox,then send via ajax below
console.log("checkbox clicked"); // to check if the event is working
var check_active = $(this).is(':checked') ? 1 : 0;
var check_id = $(this).attr('value');
$.ajax({
type: "POST",url: "dolead.php",data: {
id: check_id,active: check_active
},});
return true;
});
});
</script>