Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果有一个无线组未选中,如何检查多个无线组_Javascript_Jquery_Performance_Dom_Radio Button - Fatal编程技术网

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的有效性来检查的方式