0

我有一个表单并在输入更改时使用 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.

4

1 回答 1

0

I don't know whether I managed to catch everyone out or if this was just missed but I worked out a solution by counting the occurences of each answer and where this equals the amount of questions asked (ie, the answer appears for all questions), adding it to another array. Thanks anyway!

于 2012-09-10T12:28:29.410 回答