[js] come ripetere un istruzione per ogni campo di un form dal nome simile

isidoro80

Utente Attivo
5 Feb 2007
32
0
0
ciao a tutti ho un form con 100 campi radiobutton per controllare che l'utente inserisca i dati.
ho utilizzato questo script che vi allego sotto. onde evitare di riscivere per ogni campo del form la parte relativa al campo radiobutton (eccola)

Codice:
// Controllo RADIObutton (browser)
		for (i=0;i<6;i++)
			{
			(document.form1.radiobutton[i].checked)?browserselezionato=false:null
			}
			if (browserselezionato)
				{
				controllo=true;
				alert("Controlla il questionario. Uno o più campi da compilare");
				}
				
// Fine controllo RADIObutton


con il rischio che se l'utente per sbaglio clicca su invia senza aver compilato nessun campo si vede aprire 100 schermate alert una dietro l'altra per ogni campo del form.
vorrei sapere c'è un modo dato che i campi si chiamano radiobutton1 radiobutton2 ecc che il codice sopra si ripeta per ogni campo?
ecco lo script completo
Codice:
function ControllaForm()
	{
		var controllo=false;
		var email=true;
		var emailuguali=true;
		var browserselezionato=true;
		var come=false;
		var uso=true;

// Controllo TEXTfields (nome ed e-mail)
		if (document.form1.nome.value == "" ) 
			{
				controllo=true;
				alert("Controlla il questionario. Uno o più campi da compilare");
			}

		
// Fine controlo TEXTfield

// Controllo RADIObutton (browser)
		for (i=0;i<6;i++)
			{
			(document.form1.radiobutton[i].checked)?browserselezionato=false:null
			}
			if (browserselezionato)
				{
				controllo=true;
				alert("Controlla il questionario. Uno o più campi da compilare");
				}
				
// Fine controllo RADIObutton

	if (controllo){return false}else{return true}

	}
 
Ciao! :)

La soluzione è più semplice di quanto tu possa pensare ;)

Tu fai aprire l'alert ad ogni "cliclata". Perchè invece non fai così:
- prima del for, dichiari una variabile booleana, settata a false;
- durante il ciclo, appena viene rilevato un campo non compilato, tale variabile verrà settata a true;
- subito dopo il ciclo, inserisci un if che, se la variabile sarà true, lancerà l'alert.

SaLuT!
:byebye:
 
e come si fa praticamente questo mi puoi aiutare per favore
Sono qui apposta ;)

Guarda l'allegato (se vuoi provarlo una volta scaricato sul tuo pc trsformalo in .htm e aprilo), ti ho preparato un esempio mettendoti a posto il codice. In più l'ho reso compatibile sia per Explorer che firezzozz, e penso lo sia anche per Opera e Netscape :)

SaLuT!
:byebye:
 

Allegati

Discussioni simili