Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
<!--
/* Unique Choices script ©2008 John Davenport Scheuer
This Notice Must Remain for Legal Use.
*/
function uniqueCoicesSetup(){
uniqueCoicesSetup.modes = {1:'anyMatch', 2:'matchesBetweenIdenticalLists'};
uniqueCoicesSetup.mode = 1; // Set mode of Unique Choices Exclusivity (1 or 2)
var warnings = { // You may edit the two warnings associated with each mode:
anyMatch : 'Only one of each item May be Selected from any List!'
, // <-- Do Not Remove Comma
matchesBetweenIdenticalLists : 'Only one of each item May be Selected!'
///////////////////////// Stop Editing /////////////////////////
}, u = uniqueCoicesSetup,
s = document.getElementsByTagName('select'),
so = function (s1, s2){
if(u.mode == 1) return true;
for (var i = s1.options.length - 1; i > -1; --i)
if((!s1.options[i] || !s2.options[i]) || s1.options[i].text != s2.options[i].text)
return false;
return true;
},
f = function (e){
var s = u.ar, k = u.mode, o = this.options.selectedIndex,
t = this.options[o].text;
for (var i = s.length - 1; i > -1; --i)
if(this != s[i] && o && (k == 1 || o == s[i].options.selectedIndex)
&& t == s[i].options[s[i].options.selectedIndex].text && so(this, s[i])){
s[i].options.selectedIndex = 0;
if(e && e.preventDefault)
e.preventDefault();
alert(warnings[u.modes[u.mode]]);
return false;
}
return true;
},
add = function(el){
uniqueCoicesSetup.ar[uniqueCoicesSetup.ar.length] = el;
if ( typeof window.addEventListener != 'undefined' )
el.addEventListener( 'change', f, false );
else if ( typeof window.attachEvent != 'undefined' ){
var t = function() {
return f.apply(el);
};
el.attachEvent( 'onchange', t );
}
};
uniqueCoicesSetup.ar = [];
for (var i = s.length - 1; i > -1; --i)
if(/nodupe/.test(s[i].className))
add(s[i]);
}
if(typeof window.addEventListener!='undefined')
window.addEventListener('load', uniqueCoicesSetup, false);
else if(typeof window.attachEvent!='undefined')
window.attachEvent('onload', uniqueCoicesSetup);
// -->
</script>
</head>
<body>
<div>Group 1:
<select class="nodupe" name="l1">
<option value="" selected>Choose</option>
<option value="">Bob</option>
<option value="">Carol</option>
<option value="">Ted</option>
<option value="">Alice</option>
<option value="">Tom</option>
<option value="">Harry</option>
</select>
<select class="nodupe" name="l2">
<option value="" selected>Choose</option>
<option value="">Bob</option>
<option value="">Carol</option>
<option value="">Ted</option>
<option value="">Alice</option>
<option value="">Tom</option>
<option value="">Harry</option>
</select>
Group 2:
<select class="nodupe" name="l3">
<option value="" selected>Choose</option>
<option value="">Andy</option>
<option value="">Ceil</option>
<option value="">Harmony</option>
<option value="">Andrea</option>
<option value="">Tim</option>
<option value="">Harold</option>
</select>
<select class="nodupe" name="l4">
<option value="" selected>Choose</option>
<option value="">Andy</option>
<option value="">Ceil</option>
<option value="">Harmony</option>
<option value="">Andrea</option>
<option value="">Tim</option>
<option value="">Harold</option>
</select>
Another List:
<select class="nodupe" name="l5">
<option value="" selected>Choose</option>
<option value="">Andy</option>
<option value="">Ceil</option>
<option value="">Harmony</option>
<option value="">Andrea</option>
<option value="">Tim</option>
<option value="">Harold</option>
<option value="">Bob</option>
</select>
</div>
</body>
</html>
Bookmarks