HTML
<form action="" method="get" id="diet-wizard">
<a href="#" id="link">just a test link for display of checked values</a><div id="output" style="width: 650px; border: 1px solid red;">
</div>
<ul id="vragen">
<li id="vraag1" class="active">
<h3>1. Ik wil snel afvallen</h3>
<p class="antwoord">
<span class="antwoord"></span> | <span class="btnAanpassen">Aanpassen</span>
</p>
<p class="kiesAntwoord">
<input name="vraag1" type="radio" value="1a,4,5,12,13,17a,18,19,22,23,24,26,27,28,29,30,33,38,6" class="radio advice" checked id="vraag1-0" /><label for="vraag1-0">ja, alleen voor de korte termijn (een paar kilo eraf voor de vakantie)</label>
<br />
<input name="vraag1" type="radio" value="1b,1,2,3,7,8,11,9,14,15,16,17,20,21,25,31,34,35,36,37,10,32" class="radio advice" id="vraag1-1" /><label for="vraag1-1">nee, als het op de lange termijn maar werkt</label>
<br />
<input name="vraag1" type="radio" value="1c,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17a,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38" class="radio advice" id="vraag1-2" /><label for="vraag1-2">maakt mij niet uit</label>
<span class="warning" style="display: none;">Kies aub eerst een antwoord</span>
<a href="#" class="btn-volgende-vraag">Ok</a>
</p>
</li>
<li id="vraag2">
<h3>2. Ik weet dat bewegen goed is, maar zie dit liever niet terug in een dieet</h3>
<p class="antwoord">
<span class="antwoord"></span> | <span class="btnAanpassen">Aanpassen</span>
</p>
<p class="kiesAntwoord">
<input name="vraag2" type="radio" value="2a,1,2,4,5,7,12,13,14,17,17a,19,21,22,23,24,27,28,30,34,35" class="radio advice" id="vraag2-0" /><label for="vraag1-0">mee eens</label>
<br...
JavaScript
$(function() {
$('#link').click(function() {
var radios = '';
$('input:radio:checked').each(function() {
radios += $(this).val() + ',';
})
// remove last comma & convert to array
var results = [],
dupes = radios
.substring(0, radios.length - 1)
.split(',')
.getDuplicates();
var arr = dupes[0],
arrobj = dupes[1],
minimumDuplicates = 5; // Change this to set minimum # of dupes to find
for (var i=0; i < arr.length; i++){
if ( arrobj[arr[i]] >= minimumDuplicates ){
results.push(arr[i]);
}
}
alert('found these ' + minimumDuplicates + '+ results: \n' + results);
})
});
/* Find & return only duplicates from an Array
* also returned is an object with the # of duplicates found
* myArray = ["ccc", "aaa", "bbb", "aaa", "aaa", "aaa", "aaa", "bbb"];
* x = myArray.getDuplicates();
* // x = [ array of duplicates, associative object with # found]
* // x = [ ['aaa','bbb'] , { 'aaa' : 5, 'bbb' : 2 } ]
* alert(x[0]) // x[0] = ['aaa','bbb'] & alerts aaa,bbb
* alert(x[1]['aaa']) // alerts
*/
Array.prototype.getDuplicates = function(sort) {
var u = {}, a = [], b = {}, c, i, l = this.length;
for (i = 0; i < l; ++i) {
c = this[i];
if (c in u) {
if (c in b) { b[c] += 1; } else { a.push(c); b[c] = 2; }
}
u[c] = 1;
}
// return array and associative array with # found
return (sort) ? [a.sort(), b] : [a, b];
}