Javascript 如果有一个无线组未选中,如何检查多个无线组
我想检查提交后Javascript 如果有一个无线组未选中,如何检查多个无线组,javascript,jquery,performance,dom,radio-button,Javascript,Jquery,Performance,Dom,Radio Button,我想检查提交后沙拉或配菜是否未选中 我有一个工作方法,但它非常丑陋,我相信对于这样一个简单的任务有更简单的解决方案 我的做法: function radiosChecker(){ let radioGroups = []; let radios = document.querySelectorAll(`input[name^="${foodId}_"][type="radio"]`); // Get all radios first for(let i
沙拉
或配菜
是否未选中
我有一个工作方法,但它非常丑陋,我相信对于这样一个简单的任务有更简单的解决方案
我的做法:
function radiosChecker(){
let radioGroups = [];
let radios = document.querySelectorAll(`input[name^="${foodId}_"][type="radio"]`); // Get all radios first
for(let i = 0; i < radios.length; i++){ // Creating an array of elements each one of them representing its group
if(i == 0){
radioGroups.push(radios[i]);
continue;
}
if(i > 0){
if(radios[i].name != radios[i-1].name){
radioGroups.push(radios[i])
}
}
}
let okays = [];
radioGroups.forEach((ele)=>{
let group = document.querySelectorAll(`input[name="${ele.name}"]`); // Get all radios with same name
for(let i = 0;i < group.length; i++){ // loop untill u find one checked and append a flag to the okays
if(group[i].checked){
okays.push(true);
break;
}
}
})
if(radioGroups.length == okays.length){
return true;
}else{
return false;
}
函数无线电检测器(){
设放射群=[];
let radios=document.querySelectorAll(`input[name^=“${foodId}}}}}][type=“radio”]`);//首先获取所有无线电
对于(设i=0;i0){
if(收音机[i].name!=收音机[i-1].name){
放射组.推送(无线电[i])
}
}
}
让okays=[];
放射组。forEach((ele)=>{
让group=document.querySelectorAll(`input[name=“${ele.name}]”);//获取具有相同名称的所有收音机
对于(让i=0;i
}您可以通过使用
:选中querySelectorAll()
中的
选择器,然后测试长度是否为2
document.querySelector('button')。addEventListener('click',function(){
const checked=document.querySelectorAll('.sala-radio:checked,.side-radio:checked'),
isValid=已选中。长度===2;
log('Is valid:',isValid);
})
验证无线电
沙拉
一个
两个
三
一边
一个
两个
三
您可以使用简化此操作:选中querySelectorAll()
中的选择器,然后测试长度是否为2
document.querySelector('button')。addEventListener('click',function(){
const checked=document.querySelectorAll('.sala-radio:checked,.side-radio:checked'),
isValid=已选中。长度===2;
log('Is valid:',isValid);
})
验证无线电
沙拉
一个
两个
三
一边
一个
两个
三
无线电输入通常由名称属性设置。在这里,我展示了如何按名称处理无线电组,并向没有选定值的无线电组发出警报
- 专门获取所有收音机(以及唯一的名称)
- 按名称处理,选择要检查的内容
- 告诉我是否未使用该长度的真实/错误性质通过比较长度(如果不是1,则未选择)来检查该长度。(与
checkRadios.length<1
- 如果添加更多的收音机组,则代码不会更改
- 你不必提前知道你有多少组收音机
let allRadios=document.querySelectorAll('input[name][type=“radio”]”);
让名称=[];
所有收音机.forEach(函数(元素、索引、所有收音机){
name.push(element.name);
});
让uniqueNames=[…新集合(名称)];
函数checkMeOut(事件){
让我告诉你“”;
uniqueNames.forEach(名称=>{
让checkRadios=文档
.querySelectorAll('input[name=“”+name+”][type=“radio”]:选中');
如果(!checkRadios.length){
tellme+=“未选择”+name+'\r\n';
}
});
如果(tellme.length>0){
警惕(告诉我);
}
}
让checkem=document.getElementById('check-em');
checkem.addEventListener('click',checkMeOut);
我的沙拉
花园
板条
科布
我这边
炸薯条
喝
橙色
喝
水
焦炭
啤酒
无线电-检查所有
无线电输入通常由名称
属性设置。在这里,我演示如何按名称
处理无线电组,并向那些没有选定值的无线电组发出警报
- 专门获取所有收音机(以及唯一的名称)
- 按名称处理,选择要检查的内容
- 告诉我是否未使用该长度的真/假性质通过比较长度来检查(如果不是1,则未选择该长度)。(与
checkRadios.length<1
- 如果添加更多的收音机组,则代码不会更改
- 你不必提前知道你有多少组收音机
let allRadios=document.querySelectorAll('input[name][type=“radio”]”);
让名称=[];
所有收音机.forEach(函数(元素、索引、所有收音机){
name.push(element.name);
});
让uniqueNames=[…新集合(名称)];
函数checkMeOut(事件){
让我告诉你“”;
uniqueNames.forEach(名称=>{
让checkRadios=文档
.querySelectorAll('input[name=“”+name+”][type=“radio”]:选中');
如果(!checkRadios.length){
tellme+=“未选择”+name+'\r\n';
}
});
如果(tellme.length>0){
警惕(告诉我);
}
}
让checkem=document.getElementById('check-em');
checkem.addEventListener('click',checkMeOut);
我的沙拉
花园
板条
科布
我这边
炸薯条
喝
橙色
喝
水
焦炭
啤酒
收音机-全部检查
谢谢,我去掉了一半的代码,不知道你为什么还要推阵列。似乎太复杂了问题是我不知道会有多少个收音机组…这在问题中并不明显。一个想法是将它们包装在一个容器中,容器中包含类似的类"无线电组。然后数一数这些元素。谢谢,这真的很简单!谢谢,我去掉了一半的代码。我不知道你为什么还在推阵列。似乎太复杂了。问题是我不知道会有多少个无线电组。这在问题中并不明显。还有一个想法是将它们包装在一个容器中这门课有点像“无线电组”。然后数一数这些元素。谢谢你,这真是直截了当!哇,我喜欢你通过定义checkRadios
thanky yo的有效性来检查的方式