У меня есть 5 инпута, нужно сделать так, чтобы если одно из них не заполнить, то сообщение не должно быть отправлено.
document.querySelector(".btn-info").addEventListener("click", function(){
var required = document.querySelectorAll(".required");
if (required.val == "") {
alert("please fill all the columns");
}
});
.required {
display:block;
padding-bottom:10x;
}
<form id="fld">
<input id="question1" class="required">
<input id="question2" class="required">
<input id="question3" class="required">
<input id="question4" class="required">
<input id="question5" class="required">
</form>
<button type="button" class="btn btn-info">Отправить отзыв</button>
Так как querySelectorAll
возвращает коллекцию элементов, то проверка required.val == ""
бессмысленна, ибо берется val
(которого и одиночного-то элемента нет), которого в коллекции нет. Соответственно можно пробежать по коллекции и просмотреть значение value
у элементов:
document.querySelector(".btn-info").addEventListener("click", function(){
let required = document.querySelectorAll(".required");
let isAllFilled = true;
for (let i = 0; i < required.length; ++i) {
if (required[i].value.trim() == "") {
isAllFilled = false;
break;
}
}
if (!isAllFilled)
alert("please fill all the columns");
});
.required {
display:block;
padding-bottom:10x;
}
<form id="fld">
<input id="question1" class="required">
<input id="question2" class="required">
<input id="question3" class="required">
<input id="question4" class="required">
<input id="question5" class="required">
</form>
<button type="button" class="btn btn-info">Отправить отзыв</button>
Альтернативным решением может стать использование атрибута required
и псевдокласса :invalid
в селекторе.
В этом случае достаточно будет проверить, что такие элементы есть.
Пример:
document.querySelector(".btn-info").addEventListener("click", function() {
var required = document.querySelectorAll(".required:invalid");
if (required.length) {
console.log("please fill all the columns");
}
});
.required {
display: block;
padding-bottom: 10x;
}
<form id="fld">
<input id="question1" required class="required">
<input id="question2" required class="required">
<input id="question3" required class="required">
<input id="question4" required class="required">
<input id="question5" required class="required">
</form>
<button type="button" class="btn btn-info">Отправить отзыв</button>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно создать фильтр-тест для товаров, есть 3 категории и 3 значения, в итоге 27 значений в зависимости от конфигурацийНа каждое из значений...
Есть объект:clusterDefinition, у которого есть свойство serverRef и привязанные к нему напрямую свойства port и ip, также в serverRef есть массив объектов, у которых...