Установите все флажки в true после загрузки страницы DOM - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть несколько флажков, которые создаются с использованием циклов for с Javascript только после загрузки веб-страницы.

Я хочу установить для всех флажков значение true по умолчанию, я могу сделать это в консоли, но когда я помещаю его в свой скрипт, он не работает, так как функция, вероятно, загружается до загрузки элементов DOM.

Я пробовал два разных подхода, но ни один из них не работает. В обоих случаях они работают только для жестко заданных флажков, которые я набрал (не сгенерированных для циклов / DOM). Если кто-нибудь знает, как я могу решить эту проблему, я был бы очень признателен!

Вот мой основной код jQuery / JS.

$(document).ready(function() {
  var setTrue = document.getElementsByTagName("input");
  for (var i = 0; i < setTrue.length; i++) {
    setTrue[i].checked = true;
  };
});

$(window).on("load", function() {
  var setTrue = document.getElementsByTagName("input");
  for (var i = 0; i < setTrue.length; i++) {
    setTrue[i].checked = true;
  };
});

Ответы [ 2 ]

2 голосов
/ 10 апреля 2019

Вы можете использовать этот пример, который устанавливает атрибут всех флажков на текущей странице на флажок.

$(function(){
   $('input:checkbox').prop('checked', true)
})
1 голос
/ 10 апреля 2019

Похоже, что вы получили правильный способ сделать это из комментариев, то есть изменить javascript, который добавляет флажки, чтобы просто добавить их с проверенным свойством изначально.Но для других, которые хотят сделать что-то похожее, когда они не имеют контроля над флажками, ваша функция jQuery работает, но ее можно сделать гораздо проще, например:

$(document).ready() {
    $('input:checkbox').attr('checked', true)
}

jQuery уже сделаетцикл по входным объектам для вас (и при вашей попытке вы добавите «флажок» к каждому входу, а не только к флажкам).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...