Allora, facciamo un po' d'ordine.......
Il codice l'ho modificato totalmente, ora sto usando questo che mi controlla tutto...
codice:
function Controllo() {
var i,p,q,nm,test,num,min,max,errors='',args=Controllo.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=trova_ogg(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- La Mail inserita non è valida.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- Il campo Quantità '+nm+' può contenere solo numeri.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- Il campo Quantità '+nm+' deve contenere numeri compresi tra '+min+' e '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- Il campo Quantità '+nm+' è obbligatorio.\n'; }
} if (errors) alert('Si sono verificati i seguenti errori:\n'+errors);
document.riporta_errori = (errors == '');
document.ordina2.qta1.select();[/COLOR]
}
Controllo() lo richiamo da un pulsante in modo dinamico, aiutandomi con un ciclo ASP.
Funziona alla perfezione....
L'unica piccola modifica che vorrei apportare è all'ultima riga. Cioè fargli selezionare non sempre lo stesso campo (qta1) ma il primo campo che rileva compilato in modo errato.
Ho provato (inventando....) con
codice:
document.getElementById('nm').select();
e con
codice:
document.ordina2.getElementById('nm').select();
ma in entrambi i casi, mi mostra l'alert e poi invia comunque il modulo.
Credo che stavolta la soluzione sia facile...... (o no?)
:master: