我有几个复选框。基于JSON响应(通过ajax-requests加载数据),我使用.prop()函数设置并重设复选框的默认值。问题是,他们显然不会改变这种行为,如果我手动改变它们。我无法通过$('#checkbox:checked')。val()传递复选框的值,控制台日志显示'undefined'。这是因为.prop()函数吗?我怎样才能得到复选框的值?复选框被选中,但是:选中不起作用
如果您需要更多信息,我会很乐意提供。 这里是一些代码:
if (json.event.public_visible == 1) {
$('#event_public_visible').prop('checked', true);
} else {
$('#event_public_visible').prop('checked', false);
}
if (json.event.package_event == 1) {
$('#event_package_only').prop('checked', true);
} else {
$('#event_package_only').prop('checked', false);
}
更新:更多的代码
var editEvent = function() {
if ($('#event_public_visible').is(':checked')) {
console.log('test');
}
formData = {
// ... other fields
event_package_only: $('#event_package_only :checked').val(),
event_public_visible: $('#event_public_visible :checked').val(),
// ... more fields
};
$.ajax({
url: base_url + "admin/events/editAsync",
type: "POST",
data: formData,
dataType: "json",
success: function (json) {
// success handling
}
});
};
它应该工作 - 发布实际涉及的JavaScript,试图使用':checked'的代码。 – Pointy
还要注意它应该是'$('#checkbox-id:checked')。val()',':checked'之前没有空格。 – Pointy
你试过.is(':checked')? – alix