Newsgroup: it.comp.lang.javascript
Titolo: variabile globale

Ciao a tutti,
con questa funzione verifico che ci sia sta almeno una selezione in un
array di checkbox.
La richiamo così:
AlmenoUno(objCheck4,BoolRadio4);
BoolRadio4 è una variabile globale che setto a 1 all'esterno della
funzione di default...quindi se non viene cambiata a 0 mi deve dare
l'errore.
(BoolOperation==1)?alert('hey'):null;
Nella funzione gli passo quindi il
nome del checkbox e il nome della variabile, ma anche facendo una
selezione nei radio continua a mantenere il valore 1.
Come faccio a dirgli che "Bool" e  riferita al nome della variabile
globale che io ho settato a 1?
Anche perchè se facessi all'interno del ciclo:
(n==4)?BoolOperation=0:null;
e cambio la chiamata passandogli un numero mi funziona...
function AlmenoUno(objCheck,n){
Mi sapete aiutare?
Grazie Alen
function AlmenoUno(objCheck,Bool){
if(objCheck[0]){
for(y=0;y<objCheck.length;y++){
if(objCheck[y].checked){
alert('ssssssssssss');
				Bool = 1;
				break;
			}
		}
	}
}

 
Seguendo le regole di visibilità, facendo Bool = 1 stai utilizzando la
variabile locale che hai dichiarato come parametro.
Basta fare:
window.Bool = 1;
oppure semplicemente non passare Bool come parametro, anche perché
poi non viene utilizzata nel corpo della funzione.
Gaetano

 globale che io ho settato a 1?
A parte che se e' globale, come ti ha detto Gaetano Bigliardi, puoi anche
far a meno di passarla (altrimenti a che serve che sia globale?); ma per
limitare la "proliferazione incontrollata" di variabili globali, ti basta
che sia la funzione stessa a restituire il valore che ti interessa.
-- 
ZER0
~ The Tangent Universe collapsed 5938 days, 8 hours, 33 minutes and 36 seconds ago.
on air ~ "Gianluca Grignani - Che ne sarŕ di noi"

Ciao e Grazie.,
come faccio a ritornare il valore booleano dalla funzione?
Non ho mai utilizzato questa tecnica.
Facendo così mi dice undefined
BoolCampagna = AlmenoUno(objCheck1);
alert(BoolCampagna);
function AlmenoUno(objCheck){
if(objCheck[0]){
for(y=0;y<objCheck.length;y++){
if(objCheck[y].checked){
				break;
			}
		}
	}
}
CIao e grazie

 alert(BoolCampagna);
function AlmenoUno(objCheck){
	if (typeof objCheck!="undefined" && typeof objCheck.length=="undefined"){
		return objCheck.checked;
	}else if (objCheck!="undefined" && typeof objCheck.length!="undefined"){
		for (var i=0;<objCheck.length;i++)
			if (objCheck[i].checked)
				return true;
	}
	return false;
}
Scritta al volo.
In questo modo:
- se esiste un solo checkbox, ti restituisce true nel caso sia checked,
false in caso contrario.
- se ci sono piu' checkbox li scorre cercandone uno checked. In tal caso
restituisce true.
- se non rientra nelle due casistiche precedenti, restituisce false (non
esiste alcun oggetto checkbox oppure ne esistono ma nessuno di essi e'
spuntato)
-- 
ZER0
~ The Tangent Universe collapsed 5938 days, 9 hours, 13 minutes and 31 seconds ago.
on air ~ "Gianluca Grignani - Che ne sarà di noi"

Mi continua a dare errore da 1/2 ora e non capisco i perchè...
alla riga 40!!!!!!!!
for(var i=0;<objCheck.length;i++){ ??????????
^^^
function AlmenoUno(objCheck){
if(typeof(objCheck)!='undefined'&&typeof(objCheck.length)=='undefined'){
return objCheck.checked;
}else
if(objCheck!='undefined'&&typeof(objCheck.length)!='undefined'){
for(var i=0;<objCheck.length;i++){
if(objCheck[i].checked){
return true;
}		
			}
        	return false; 
		} 				
 
}

 for(var i=0;<objCheck.length;i++){ ??????????
colpa mia, nello scrivertelo direttamente nel post m'e' rimasta una "i"
nella tastiera:
for(var i=0;i<objCheck.length;i++){
-- 
ZER0
~ The Tangent Universe collapsed 5938 days, 10 hours, 38 minutes and 23 seconds ago.


GrAZIE!
Pensavo fosse una cosa del genere ma sono anch'iop stanco...proprio non
l'ho vista la "i" mancante.
TNKS...è perfetto