Все входные данные со страницы
У меня есть эта html страница, которая создается динамически и содержит некоторые div. Каждый вопрос div (0,1,2, et c) содержит ввод, основанный на том, какой тип ответа выбрал пользователь. Я хочу проверить каждый ввод со страницы и:
Если значение одного типа ввода номер, текст, дата равно! = "" Alert ("что-то") иначе отправить значение в массиве; Если флажок / радио не установлен, alert ("что-то");
Я пробовал что-то вроде этого:
let nrDiv = document.getElementsByClassName("div-question");
let existInput = nrDiv[0].querySelector("input[type='text']");
let numberInput = nrDiv[0].querySelector("input[type='number']");
if (document.body.contains(existInput)) {
for (let i=0; i < nrDiv.length ;i++) {
let container = document.getElementsByClassName("div-questions" + i + "");
let userInputAnswer = container[0].querySelector("input[type='text']");
if (userInputAnswer.value == "") {
alert("Adaugati un raspuns!")
return;
}
if (userInputAnswer.value != ""){
let answer = {
question: questions[i].textQuestion,
answer: userInputAnswer.value
}
answers.push(answer);
}
}
}
Работает, но если я приду с другим для l oop, для input type = "number" больше не работает. Я получаю значение null. Итак, если я приду с этим:
if (document.body.contains(numberInput)) {
for (let i=0; i < nrDiv.length ;i++) {
let container = document.getElementsByClassName("div-questions" + i + "");
let userInputAnswer = container.querySelector("input[type='number']");
if (userInputAnswer.value == "") {
alert("Adaugati un raspuns!")
return;
}
if (userInputAnswer.value != ""){
let answer = {
question: questions[i].textQuestion,
answer: userInputAnswer.value
}
answers.push(answer);
}
}
}
А для флажка и радиовходов я понятия не имею. Я хочу что-то вроде этого:
Если все входы не пусты и установлен хотя бы один флажок / радио, отправьте ответ и вопрос в массиве else alert ("error");