フォームがあり、入力が変更されたときに 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のいくつかの回答からコードを使用しました。インスタンスを数えてみましたが、ぐるぐる回っているように見えるので、どんな助けも大歓迎です。
十分な情報を提供できたことを願っています。ありがとう。