Вы должны использовать input
dom, событие изменения которого вызвано не этим
$("input:checkbox")
Вы должны сделать что-то вроде этого:
$('input:checkbox').change(function (e) {
e.preventDefault();
var self = $(this);
var isChecked = self.is(":checked") ? 1 : 0;
$.ajax({
type: 'POST',
url: "admin-ajax.php",
data: {event_status: self.attr("id"), status: isChecked},
success: function (response) {
console.log(response);
}
});
});
Есливы хотите подготовить объект ajax data
вне $.ajax
, вы можете сделать это следующим образом:
$('input:checkbox').change(function (e) {
e.preventDefault();
var data = {event_status: $(this).attr("id"), status: +$(this).is(":checked")};
$.ajax({
type: 'POST',
url: "admin-ajax.php",
data: data,
success: function (response) {
console.log(response);
}
});
});
Примечание: +
в +$(this).is(":checked")
преобразует логическое значение в число, false
становится 0,и true
становится 1