0

フォームがあり、入力が変更されたときに Jquery を使用して「fields」という配列を作成します。

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)。リストをフィルター処理して、質問 1 と質問 2 のみが選択されている場合は、"bb" と "cc" が表示されるようにします。さらに、値「dd」で 4 番目の質問が選択され、したがってすべての質問に一致する値がない場合、アラートを返し、最後の値を削除/選択解除したいので、元に戻ります「cc」だけです。

値を比較して一致するものだけを表示する方法がわかりません。私はstackoverflowのいくつかの回答からコードを使用しました。インスタンスを数えてみましたが、ぐるぐる回っているように見えるので、どんな助けも大歓迎です。

十分な情報を提供できたことを願っています。ありがとう。

4

1 に答える 1

0

全員を捕まえることができたのか、それとも見逃しただけなのかはわかりませんが、各回答の出現回数を数え、これが尋ねられた質問の数に等しい (つまり、すべての質問に対して回答が表示される) ことで解決策を見つけました。 、別の配列に追加します。とにかくありがとう!

于 2012-09-10T12:28:29.410 に答える