Compare values of a Input text array control and Select option array control for each array index using Jquery
如何比较这些输入文本的相同索引的值并选择控件数组?
1 2 3 4 5 6 7 8 9 | 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()); }); |
数组内容:
1 2 | qtype_array - ["MULTIPLE","SINGLE","DESC"] true_ans_array - ["AC","A",""] |
我想检查,如果在索引0的qtype_数组中,如果文本是"多个",那么在真数组的同一索引0中,文本应至少为2个字符;如果qtype_数组中的文本是"单个",则在同一索引的真数组中文本内容的长度应为1;如果在qtype_数组中,文本内容的长度应为1。如果文本为"desc",则"true"数组中文本内容的长度应为0。
我正在开发一个在线考试系统。
我被卡住了,想不出解决办法……
您可以同时遍历两个数组,检查它们在每个位置是否具有您期望的值。
只需rmember检查两个数组的大小是否相同,以及每个位置的值是否是字符串。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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; } } |
看这个小提琴,下面是解释:
假设您已经从页面收集了所有信息,那么您应该已经用数据填充了两个数组
这样地:
1 2 3 4 5 6 7 8 9 | 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()); }); |
现在两个数组中都有元素。下一步是检查所有元素。我假设两个数组都有相同数量的元素。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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"); } |
号
}