#php #jquery #checkbox
#php #jquery #флажок
Вопрос:
Я пытаюсь установить некоторые флажки на основе этого значения. В моем коде я могу обновить базу данных, используя этот ckbxs, но когда я пытаюсь загрузить обновленную дату, статус отображается как снять флажок. Итак, я пытаюсь прочитать html после создания формы, чтобы проверить значения, а затем проверить ckbx. Что я могу сделать, чтобы это исправить? Заранее спасибо
$(document).ready(function(){
$('input[type=checkbox]').each(function () {
if (this.value == 1) {
(function(){this.attr('checked', true);})
}
} )
})
Комментарии:
1. Не каждая версия jQuery правильно поддерживает селектор атрибута, когда значение атрибута не указано в кавычках. YMMV.
Ответ №1:
Вам нужно заключить this
s в $( )
и изменить value
на val()
.
$(document).ready(function(){
$('input[type=checkbox]').each(function () {
if ($(this).val() == 1) {
$(this).attr('checked', true);
}
});
});
Комментарии:
1. Вы можете добавить событие onchange к каждому флажку и установить значение в зависимости от того, установлено оно или нет
2. все работает нормально, но знайте, что у меня новая проблема. не могли бы вы пересмотреть, пожалуйста? Невозможно установить значение как 0. Он всегда возвращает 1. ` $(document). готово(функция(){ $(‘ввод: флажок’).изменить(функция() { $.post(‘update.php ‘, { id: this.id , значение: $(this).attr(«проверено»)?1:0 }, функция(данные){ $(‘#display’).html(data.returnValue) if(data.successful) { } else { } }, ‘json’); возвращает false; }); $(‘ввод [тип= флажок]’).каждый(функция () { if ($(this).val() == 1) { $(this). attr(‘проверено’, true); } }); });`
3. Атрибуты являются строковыми значениями, поэтому проверка на наличие непустой строки всегда будет возвращать значение true, независимо от того, является ли значение «true» или «false». Попробуйте изменить $(this).attr(«проверено»)?1:0 на $(this).attr(«проверено»)==»true»? 1:0
Ответ №2:
$(document).ready(function () {
$('input[type="checkbox"][value="1"]').each(function () {
$(this).attr('checked', true);
});
});
Ответ №3:
Спасибо, Виллиан, теперь я использую onChange, и я получил то, что мне нужно…
function changerCB(idCheck){
$(document).ready(function() {
$.post('ajaxUpdate.php', {
id: document.getElementById(idCheck).id,
value: document.getElementById(idCheck).checked?1:0
}, function(data){
$('#display').html(data.returnValue)
if(data.success) {
} else {
}
}, 'json');
return false;
});
}