как пометить флажки после создания динамической формы в PHP с помощью jQuery,

#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;  
}); 
}