Я пытаюсь установить флажок value
, если установлен флажок, value
равен active
, но если не отмечен, value
равен disabled
.
Следующий код работаетдля текста текст изменяется, когда флажок установлен или снят, но значение, которое публикуется в базе данных, равно null
, если флажок снят.
HTML
<input type="checkbox" name="cat_status" class="inline checkbox" id="checkbox" checked value="active" onclick="cat_check()">
<label id="text" style="display:Active">Active</label>
JS
function cat_check() {
var checkBox = document.getElementById('checkbox');
var text = document.getElementById('text');
if (checkBox.checked == false) {
text.style.display = "inline";
document.getElementById('checkbox').value = "active";
} else {
text.style.display = "none";
document.getElementById('checkbox').value = "disable";
}
}
Я ожидаю, что значение, отправленное в базу данных, будет disabled
, когда флажок снят, но в настоящее время он получает null
.
Обновление:
Добавлена исправленная версия, включающая вызов AJAX
, основанный на предоставленной обратной связи ответов.Это на всякий случай, если кто-то попадет в ту же проблему.
Если вы поиграете с примером в нижней части документации serialize () , вы увидите, что значение не добавляется дляфлажки, которые не отмечены.Вам придется сделать это вручную.Может быть, это может помочь вам: как я могу переопределить jseery .serialize, чтобы включить непроверенные флажки
HTML
<form method="post" class="add_sub_categories">
<input type="checkbox" name="cat_status" class="inline checkbox" id="checkbox" checked value="active" onclick="cat_check()">
<label id="text" style="display:Active">Active</label>
<a class="btn btn-xs btn-info save_main_cat">GO!</a>
</form>
JS
function cat_check() {
var checkBox = document.getElementById('checkbox');
var text = document.getElementById('text');
if (checkBox.checked == true) {
text.style.display = "inline";
} else {
text.style.display = "none";
}
}
AJAX
$(document).ready(function() {
$(".save_main_cat").click(function() {
var data = $('.add_main_categories').serialize();
/* This code will include the value for the checkbox when unchecked */
$(".add_main_categories input:checkbox:not(:checked)").each(function(e) {
data += "&"+this.name+'=disable';
});
$.ajax({
type: 'POST',
url: "<?= base_url() ?>admin_ajx/categories_ajx/update_main_categories",
data: data,
success: function() {
$('#addCat').modal('hide');
$(".add_main_categories")[0].reset();
dttable.destroy();
$(document).ready(function() {
main_cat(), main_cat_option(), dt_tables();
});
}
});
});
});