我有几个复选框。我根据JSON响应(通过ajax-requests加载数据),使用.prop()函数设置和重置复选框的默认值。问题是,如果我手动更改它们,它们显然不会改变这种行为。我无法通过$(' #checkbox:checked')。val()传递复选框的值,控制台日志显示未定义'。这是因为.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
}
});
};
答案 0 :(得分:2)
试试这个:$('#event_public_visible:checked').val()
和$('#event_public_visible:checked').val()
您可以尝试:('#event_public_visible:checked').length ? $('#event_public_visible:checked').val() : '';
答案 1 :(得分:1)
您在ID为“event_public_visible”和“event_package_only”的元素上设置属性,然后尝试从ID'复选框'中读取元素。
您的意思是使用它吗?
$('[type=checkbox]:checked').val()
可以看到它在这里工作: