Javascript JQuery:each()的替代选项,用于根据选中的复选框值进行条件检查

Javascript JQuery:each()的替代选项,用于根据选中的复选框值进行条件检查,javascript,jquery,code-readability,Javascript,Jquery,Code Readability,1复选框有五个值:GRA、RRA、FRA、MRA、CHDA 2复选框类名为oops。共有5个 3如果未选择FRA、MRA、CHDA值,我们将抛出异常 我使用以下代码段实现: var availability = false; $(".oops:checked").each(function() { if($(this).val() === 'FRA' || $(this).val() === 'MRA' || $(this).val() === 'CHDA') { av

1复选框有五个值:GRA、RRA、FRA、MRA、CHDA

2复选框类名为oops。共有5个

3如果未选择FRA、MRA、CHDA值,我们将抛出异常

我使用以下代码段实现:

var availability = false;

$(".oops:checked").each(function() {
    if($(this).val() === 'FRA' || $(this).val() === 'MRA' || $(this).val() === 'CHDA') {
        availability = true;
    }
});

if (!availability) {
    errors.push('There is no selected among FRA MRA CHRA');            
}

我们是否有其他更好的方法来处理此问题,而不是使用三个或运算符并在每个函数中检查它?

您可以为复选框的所有允许值创建一个数组数据结构,并对照它们检查所选值:

var availability = false;
var alloweValues = ['FRA', 'MRA', 'CHDA']; 
$(".oops:checked").each(function() {
    if(alloweValues.includes($(this).val())) {
      availability = true;
    }
});
if (!availability) {
    errors.push('There is no selected among FRA MRA CHRA');            
}
您可以进一步重构代码以:

var availability = false;
var alloweValues = ['FRA', 'MRA', 'CHDA']; 
$(".oops:checked").each(function() {
    availability = alloweValues.includes($(this).val());
});
if (!availability) {
    errors.push('There is no selected among FRA MRA CHRA');            
}
您还可以用indexOf-like替换include


作为,包含在IE浏览器中不起作用。

您可以为复选框的所有允许值创建一个数组数据结构,并对照它们检查所选值:

var availability = false;
var alloweValues = ['FRA', 'MRA', 'CHDA']; 
$(".oops:checked").each(function() {
    if(alloweValues.includes($(this).val())) {
      availability = true;
    }
});
if (!availability) {
    errors.push('There is no selected among FRA MRA CHRA');            
}
您可以进一步重构代码以:

var availability = false;
var alloweValues = ['FRA', 'MRA', 'CHDA']; 
$(".oops:checked").each(function() {
    availability = alloweValues.includes($(this).val());
});
if (!availability) {
    errors.push('There is no selected among FRA MRA CHRA');            
}
您还可以用indexOf-like替换include


作为,包含在IE浏览器中不起作用。

创建一个数组来存储每个选中的值,如下所示:

var checkvalues=[];
 $(".oops:checked").each(function(){
        checkvalues.push($(this).val());
    });

之后,您可以使用includes方法来检查上述代码。

创建一个数组来存储每个检查值,如下所示:

var checkvalues=[];
 $(".oops:checked").each(function(){
        checkvalues.push($(this).val());
    });

之后,您可以使用includes方法来检查上述代码。

为此创建数组,然后选择create array,然后选择checkThank。我喜欢这样。你可以分享更多的信息。我们还需要以某种方式声明这些常量->“FRA”、“MRA”、“CHDA”来检查它。将其标记为答案:@fatherazrael很乐意帮忙:-谢谢。我喜欢这样。你可以分享更多的信息。我们还需要以某种方式声明这些常量->“FRA”、“MRA”、“CHDA”来检查它。将其标记为答案:@fatherazrael很乐意帮忙:-