Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 比较输入文本数组控件的值,并使用Jquery为每个数组索引选择选项array control_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 比较输入文本数组控件的值,并使用Jquery为每个数组索引选择选项array control

Javascript 比较输入文本数组控件的值,并使用Jquery为每个数组索引选择选项array control,javascript,jquery,arrays,Javascript,Jquery,Arrays,如何比较每个输入文本的相同索引值并选择控制数组 var qtype_array = new Array(); $('select[name="qtype[]"]').each(function(){ qtype_array.push($(this).val()); }); var true_ans_array = new Array(); $('input[name="true_ans[]"]').each(function(){ true_ans_array.push($(

如何比较每个输入文本的相同索引值并选择控制数组

var qtype_array = new Array();
$('select[name="qtype[]"]').each(function(){
    qtype_array.push($(this).val());
}); 

var true_ans_array = new Array();
$('input[name="true_ans[]"]').each(function(){
    true_ans_array.push($(this).val().toUpperCase());
});
数组内容:

qtype_array - ["MULTIPLE", "SINGLE","DESC"]
true_ans_array - ["AC", "A", ""] 
我想检查,如果在索引0处的qtype_数组中,文本是多个,那么在true_ans_数组的相同索引0处,文本应至少为2个字符,如果qtype_数组中的文本是单个的,那么在相同索引处的true_ans_数组中的文本内容长度应为1,如果在qtype_数组中,如果文本为DESC,则true_ans_数组中的文本内容长度应为0

我正在开发一个在线考试系统

我陷入了困境,想不出解决办法……

看看这个,下面是解释:

假设您已经收集了页面中的所有信息,那么应该已经用数据填充了数组qtype_array和true_ans_array

像这样:

var true_ans_array = new Array();
$("input[name='true_ans[]']").each(function(){
    true_ans_array.push(this.value);
});

var qtype_array = new Array();
$('select[name="qtype[]"]').each(function(){
    qtype_array.push($(this).val());
});
现在两个数组中都有元素。 下一步是遍历所有元素。我假设两个数组的元素数量相同

for (i=0; i < qtype_array.length; i++) {

switch (qtype_array[i]) {
    case "MULTIPLE": if (true_ans_array[i].length >= 2) 
                      {alert("it's >= than 2")} 
                     break; 
    case "SINGLE": if (true_ans_array[i].length == 1) 
                      {alert("it's == to 1")}
                     break; 
    case "DESC": if (true_ans_array[i].length == 0) 
                      {alert("it's == to 0")}
                     break; 
    default: alert("neither Multiple, Single or Desc");

}

}

您可以同时遍历这两个数组,检查它们在每个位置是否具有您期望的值

只需rmember检查两个数组是否具有相同的大小,以及每个位置的值是否相同。null.length将引发错误

for ( var i = 0; i < qtype_array.length; i++ ) {
    var q = qtype_array[i];
    var a = true_ans_array[i];
    switch ( q ) {
        case "MULTIPLE":
            if ( a.length < 2 ) {
                alert('q == "MULTIPLE" but a.length < 2');
            }
            break;
        case "SINGLE":
            if ( a.length != 1 ) {
                alert('q == "SINGLE" but a.length != 1');
            }
            break;
        case "DESC":
            if ( a.length > 0 ) {
                alert('q == "DESC" but a.length > 0');
            }
            break;
        default:
            alert('q != "MULTIPLE", "SINGLE" and "DESC"');
            break;
    }
}

我不知道你的答案和我的有什么不同?我想当你发布你的答案时,我还在打我的。哦,好吧。