Document.getElementsByName("q1").disabled = true не работает

Я пытаюсь отключить входы с именем "q1", но это просто не отключает их.

Строка кода просто

if (time < 0){
    document.getElementById("lose").innerHTML = "O tempo acabou!";
    document.getElementById("nextQuestion").style.display = "block"
    document.getElementsByName("q1").disabled = true
}

Другая document.getElementById работа.

HTML-код

<br><br><input type = "submit" name = "q1" value = "arroz">
            <input type = "submit" name = "q1" value = "massa"><br><br>
            <input type = "submit" name = "q1" value = "Apanhado em flagrante">
            <input type = "submit" name = "q1" value = "batata de tremoços"><br><br><br>`
getElementsByName возвращает коллекцию. Возможно, вы имели в виду document.getElementsByName("q1")[0].disabled?
danronmoon 26.02.2019 22:07

document.getElementsByName("q1") возвращает список элементов с именем q1, поэтому вы должны зациклить и отключить

Naga Sai A 26.02.2019 22:07

У вас есть много входных данных с именем «q1», поэтому вам, вероятно, следует сделать их уникальными. Или получить правильный индекс

Ibrahim Fadel 26.02.2019 22:08

О, я не знал, что он вернул список, я ожидал, что он просто отключит их все. Спасибо!

user11107231 26.02.2019 22:09
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
1 511
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

document.getElementsByName возвращает Список узлов, что-то вроде массива. Вам нужно перебрать его и отключить каждый элемент.

Список узлов будет содержать все элементы с именем q1, а приведенный ниже код (в частности, цикл .forEach()) отключит каждый элемент с именем q1

time = -1;

if (time < 0){
    document.getElementById("lose").innerHTML = "O tempo acabou!";
    document.getElementById("nextQuestion").style.display = "block"
    document.getElementsByName("q1").forEach(e => {
      e.disabled = true;
    });
}
<br><br><input type = "submit" name = "q1" value = "arroz">
<input type = "submit" name = "q1" value = "massa"><br><br>
<input type = "submit" name = "q1" value = "Apanhado em flagrante">
<input type = "submit" name = "q1" value = "batata de tremoços"><br><br><br>
<div id = "lose"></div>
<div id = "nextQuestion"></div>

Буква e в цикле foreach — это каждый элемент q1, верно?

user11107231 26.02.2019 22:13

@DuarteArribas да. В циклах foreach мы обычно используем element, чтобы обозначить, что это элемент. Я начал использовать e, который легче набирать, но означает то же самое.

Aniket G 26.02.2019 23:30

Другие вопросы по теме