javascript - 如何验证页面上存在的所有输入?
问题描述
我有这个动态创建的 html 页面,其中包含一些 div。每个 div-question(0,1,2, etc) 都包含一个基于用户选择的答案类型的输入。我想验证页面中的每一个输入,并且:
如果一个输入类型 number,text,date 的值为 != "" alert("something")
else 发送数组中的值;
如果未选中复选框/收音机警报(“某事”);
我试过这样的事情:
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);
}
}
}
它正在工作,但如果我使用另一个 for 循环,for input type="number" 将不再工作。我得到的价值为空。所以,如果我带着这个:
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");
解决方案
推荐阅读
- mongodb - 按时间间隔分组 spring-data-mongo
- sql - SQL 从表中的列中的 json 检索用户 ID
- gis - 如何进行批量地理编码并获取多个交叉点的纬度和经度
- xsd - 如何声明具有两组不同属性的 xs:element?
- javascript - 具有用于分组的动态属性的嵌套 javascript 对象的传播语法
- sql - 存储函数不返回 SQL Server 中的表
- c++ - 我可以将派生类指向不同的基础吗?(即:改变孩子的家庭)
- python - 动画两个具有不同速度的对象
- latex - 在 LaTeX 的新句子中间放置一个数学公式
- .net - 模拟响应有效,但验证失败