Al submit di un form vengono eseguite due funzioni che effettuano controlli sui campi.
la prima controlla se ci sono dei campi con lo stesso nome
la seconda (richiamata dalla prima) disabilita quel campo che avendo il nome uguale ad un altro ha lo stato hidden.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; }
codice: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; }
le funzioni fanno il loro dovere ma davanti ad una gran quantità di campi rendono il POST molto lento.
SI possono migliorare un po' nella direzione della velocizzazione del trattamento dei campi?

Rispondi quotando