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

Pubblicità

isidoro80

Utente Attivo
Messaggi
124
Reazioni
0
Punteggio
38
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}

	}
 
SE NON RICORDO MALE....

I radio devono avere tutti lo stesso nome, ma solo diverso valore :rolleyes:

Non devi far altro che dare a tutti lo stesso NAME e cambiare il VALUE con quello che vuoi ;)

Il motivo è semplice.. Se dai a tutti valori diversi non avrebbe senso, perchè li fai appartenere a generi diversi, di conseguenza la scelta non ci sarebbe e l'utente potrebbe selezionarli tutti, invece usando lo stesso nome l'utente si limita a sceglierne solo uno tra i tanti e passarti il valore di quello scelto ^^
 
non hai capito il problema forse mi sono spiegato male. ho un questionario con 100 domande e l'utente può selezionare per ogni domanda 6 risposte attraverso 6 radio. ovvio che i sei radio hanno lo stesso nome ma valori diversi. io devo verificare che l'utente per ogni risposta selezioni un radio. Quello che fa lo script sopra vale per un solo tipo di radiobutton controlla cioè che dei sei tasti almeno uno ne venga selezionato ora per controllare altri 99 categorie di radiobutton dovrei riscrivere il codice sostituendo ogni volta il nome del radibutton. capito ora? inoltre con il metodo sopra ad ogni tipo di radio corrisponde un alert quindi per 100 domande non risposte = 100 alert. io ne vorrei uno solo
 
Ok, ora sei stato più chiaro, premetto che non sono bravo in js... ma prova a sostituire questo:

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

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");
                                return;
				}
				
// Fine controllo RADIObutton
 
non credo che risolva molto quella modifica. io avevo pensato di fare cosi però non capisco su una pagina mi funziona su un'altra no perchè
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("Inserisci il nome dell'azienda");
			}

		
// Fine controlo TEXTfield

// Controllo RADIObutton (browser)
		for (i=0;i<6;i++)
			{
			(document.form1.radiobutton[i].checked & document.form1.radiobutton2[i].checked & document.form1.radiobutton3[i].checked & document.form1.radiobutton4[i].checked & document.form1.radiobutton5[i].checked & document.form1.radiobutton6[i].checked & document.form1.radiobutton7[i].checked & document.form1.radiobutton8[i].checked & document.form1.radiobutton9[i].checked & document.form1.radiobutton10[i].checked & document.form1.radiobutton11[i].checked & document.form1.radiobutton12[i].checked & document.form1.radiobutton13[i].checked & document.form1.radiobutton14[i].checked & document.form1.radiobutton15[i].checked & document.form1.radiobutton16[i].checked & document.form1.radiobutton18[i].checked & document.form1.radiobutton19[i].checked & document.form1.radiobutton20[i].checked & document.form1.radiobutton21[i].checked & document.form1.radiobutton22[i].checked & document.form1.radiobutton23[i].checked & document.form1.radiobutton24[i].checked & document.form1.radiobutton25[i].checked & document.form1.radiobutton26[i].checked & document.form1.radiobutton27[i].checked & document.form1.radiobutton28[i].checked & document.form1.radiobutton29[i].checked & document.form1.radiobutton30[i].checked & document.form1.radiobutton30b[i].checked & document.form1.radiobutton31[i].checked & document.form1.radiobutton32[i].checked & document.form1.radiobutton33[i].checked & document.form1.radiobutton34[i].checked & document.form1.radiobutton35[i].checked & document.form1.radiobutton36[i].checked & document.form1.radiobutton37[i].checked & document.form1.radiobutton37b[i].checked & document.form1.radiobutton38[i].checked & document.form1.radiobutton39[i].checked & document.form1.radiobutton40[i].checked & document.form1.radiobutton41[i].checked & document.form1.radiobutton42[i].checked & document.form1.radiobutton43[i].checked & document.form1.radiobutton44[i].checked & document.form1.radiobutton45[i].checked & document.form1.radiobutton46[i].checked & document.form1.radiobutton47[i].checked & document.form1.radiobutton48[i].checked & document.form1.radiobutton49[i].checked & document.form1.radiobutton50[i].checked & document.form1.radiobutton51[i].checked & document.form1.radiobutton52[i].checked & document.form1.radiobutton53[i].checked & document.form1.radiobutton54[i].checked & document.form1.radiobutton55[i].checked & document.form1.radiobutton55b[i].checked & document.form1.radiobutton56[i].checked & document.form1.radiobutton57[i].checked & document.form1.radiobutton58[i].checked & document.form1.radiobutton59[i].checked & document.form1.radiobutton60[i].checked & document.form1.radiobutton61[i].checked & document.form1.radiobutton62[i].checked & document.form1.radiobutton63[i].checked & document.form1.radiobutton65[i].checked & document.form1.radiobutton66[i].checked & document.form1.radiobutton67[i].checked & document.form1.radiobutton68[i].checked & document.form1.radiobutton69[i].checked & document.form1.radiobutton70[i].checked & document.form1.radiobutton71[i].checked & document.form1.radiobutton72[i].checked & document.form1.radiobutton73[i].checked & document.form1.radiobutton74[i].checked & document.form1.radiobutton75[i].checked & document.form1.radiobutton76[i].checked & document.form1.radiobutton77[i].checked & document.form1.radiobutton78[i].checked & document.form1.radiobutton79[i].checked & document.form1.radiobutton80[i].checked & document.form1.radiobutton81[i].checked & document.form1.radiobutton82[i].checked & document.form1.radiobutton83[i].checked & document.form1.radiobutton84[i].checked & document.form1.radiobutton85[i].checked & document.form1.radiobutton86[i].checked & document.form1.radiobutton87[i].checked & document.form1.radiobutton88[i].checked & document.form1.radiobutton89[i].checked & document.form1.radiobutton90[i].checked & document.form1.radiobutton91[i].checked & document.form1.radiobutton92[i].checked & document.form1.radiobutton93[i].checked & document.form1.radiobutton94[i].checked & document.form1.radiobutton95[i].checked & document.form1.radiobutton96[i].checked & document.form1.radiobutton98[i].checked & document.form1.radiobutton99[i].checked & document.form1.radiobutton100[i].checked & document.form1.radiobutton101[i].checked & document.form1.radiobutton102[i].checked & document.form1.radiobutton103[i].checked & document.form1.radiobutton104[i].checked & document.form1.radiobutton105[i].checked & document.form1.radiobutton106[i].checked & document.form1.radiobutton107[i].checked & document.form1.radiobutton108[i].checked & document.form1.radiobutton109[i].checked & document.form1.radiobutton110[i].checked & document.form1.radiobutton111[i].checked & document.form1.radiobutton112[i].checked & document.form1.radiobutton113[i].checked & document.form1.radiobutton114[i].checked & document.form1.radiobutton115[i].checked & document.form1.radiobutton116[i].checked)?browserselezionato=false:null
			}
			if (browserselezionato)
				{
				controllo=true;
				alert("Controlla il questionario. Devi rispondere ad alcune domande");
				}
				
// Fine controllo RADIObutton

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

	}
 
Pubblicità
Pubblicità
Indietro
Top