la cosa si fa complessa ...
codice:
function trovadoppi(ff) {
var ok = true;
var listacampi = new Array();
for(var i=0; i<ff.length; i++) {
var nn = ff.elements[i].name;
var diversi = true;
for(var j=0; j<listacampi.length; j++) {
if(listacampi[j] == nn) {
diversi=false;
alert("campi uguali: "+nn);
if(!trattadoppi(ff,nn)) ok=false;
break;
}
}
if(diversi) listacampi.push(nn);
}
return ok;
}
function trattadoppi(f,n) {
var ob = f.elements[n];
var k = ob.length;
if(k < 2) {
alert("errore: mismatch");
return false;
}
for(var i=0; i<ob.length; i++) {
if(ob[i].type == 'hidden') {
ob[i].disabled = true;
k--;
alert("disabilitato il campo hidden "+n);
}
}
if(k < 2) return true;
else return false;
}
Da chiamare con
<form ... onsubmit="return trovadoppi(this);">
Se c'e` un'altra funzione nell'onsubmit:
<form ... onsubmit="return (trovadoppi(this)) ? altrafunzione() : false;">