Как узнать, какие флажки отмечены при загрузке страницы? - PullRequest
0 голосов
/ 18 декабря 2018

У меня уже есть событие / слушатель change, но это ничего не делает, когда кто-то обновляет страницу ... и т. Д. (Загрузка страницы), и уже установлены флажки.

Какя могу проверить, проверяются ли ЛЮБЫЕ флажки при загрузке страницы, и получить их имя / значение (что угодно)?

Пример: я проверяю, проверяются ли ЛЮБОЕ флажки в определенном элементе DOM следующим образом:

if($("#allocation input:checkbox").is(':checked')){
    console.log("something is checked");
}

Но как я могу получить id из тех, которые проверяются при загрузке страницы?

Что-то вроде $this.id внутри вышеприведенного?(но это, конечно, не работает).

Или вы можете каким-то образом связать event.target с вышеупомянутым условным условием is.('checked')?

Опять же, у меня уже есть кое-что для.change() (взаимодействие с пользователем), но если флажок установлен, и кто-то перезагружает страницу, флажок по-прежнему установлен (и мне все еще нужно обслужить это).

Мое окончательное решение здесь: (похоже/ то же, что предложено ниже)

KEY .. используйте функцию 'each' ..

//on page load
                    $('#allocation input:checked').each(function() {
                        if($(this).is(':checked')){
                            //console.log("CB CHECK: " + $(this).attr('id'));
                            var targetID = $(this).attr('id');
                            $('#' + targetID + 'amount').prop('disabled', false);
                        }
                    });

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Объедините селекторы "#allocation input:checked" (или "#allocation input:checkbox:checked"), которые дадут вам массив всех флажков, которые отмечены.Затем выполните цикл с помощью each(), и вы можете получить id с помощью this.id.

. Поместите весь код в самовыполняющуюся функцию (function() {...})(); внизу кода или, по крайней мере, ниже.все флажки.Как то так:

(function() {
  $("#allocation input:checked").each(function() {
    console.log(this.id + " is checked")
  });
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div id="allocation">
  <input type="checkbox" id="chk1" checked="checked" /> Option 1
  <input type="checkbox" id="chk2" /> Option 2
  <input type="checkbox" id="chk3" /> Option 3
  <input type="checkbox" id="chk4" checked="checked" /> Option 4
  <input type="checkbox" id="chk5" checked="checked" /> Option 5
</div>
0 голосов
/ 18 декабря 2018

это будет проходить через ВСЕ отмеченные флажки и console.log их ID.

ID доступен через PROP.

$("input:checkbox:checked").each(function(){
    console.log($(this).prop("id"));
});

РЕДАКТИРОВАТЬ: захватывает их имя и значение также

$("input:checkbox:checked").each(function(){
    console.log($(this).prop("id"),$(this).prop("name"),$(this).val());
});
...