我有一个表单并在输入更改时使用 Jquery 创建一个名为“字段”的数组:
var fields = $(":input").serializeArray();
然后我在 .each 函数中使用这个数组来显示项目列表:
jQuery.each(fields, function(i, field){
//get multiple values into array and perform action for each
val = field.value;
name = field.name;
var valarray = val.split(',');
for (var i in valarray) {
//get each answer
val = $.trim(valarray[i]);
$("#pid"+val).show();
}//end for
});//end each
目前,如果选择了 3 个单选按钮,console.log 会显示这一点:
[Object { name= "question1" , value= "aa,bb,cc,dd" }, Object { name= "question2" , value= "bb,cc" }, Object { name= "question3" , value= "cc,ee" }]
并显示所有值 aa、bb、cc、dd 和 ee。
我想做的不是显示所有值,而是比较每个问题的值,并且只显示出现在所有问题中的值(在本例中为 cc)。想法是过滤列表,因此如果仅选择了 question1 和 question2,则会显示“bb”和“cc”。此外,如果选择了值为“dd”的第 4 个问题,因此没有与所有问题匹配的值,我想返回警报并删除/取消选择最后一个值,因此恢复为只是“抄送”。
我不知道如何比较这些值以仅显示匹配的值。我在stackoverflow上使用了一些答案中的代码,我尝试过计算实例,但似乎是在循环中,所以任何帮助都将不胜感激。
I hope I've given you enough info. Thanks.