Newsgroup: it.comp.lang.javascript
Titolo: if .....else

Ciao, ho un codice di questo tipo
for (var i=0;i<dT.length;i++) {
if (dT.elements[i].type=="checkbox" && dT.elements[i].checked) {
z++;
obj=document.getElementById("prova"); //SCRIVO NEL LAYER PROVA
obj.innerHTML=dT.elements[i].value;
}
Vorrei aggiungere un "else" con questo significato..."quando deseleziono
checkbox[i] svuota il layer". Io ho provato con un semplice else ma sia che
selezioni sia che deselezioni la checkbox mi mette il testo che inserisco
nell'else.
Mi potete aiutare?
Michele
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 mette il testo che inserisco nell'else.
Che dire... nel codice da te postato manca la graffa di chiusura del ciclo
For: non potrebbe essere un errore di questo tipo? Magari posta l'intero
codice comprensivo di Else.
Ciao!
-- 
Esteban
www.seber.it
Questo post è stato scritto con bit riciclati.

 codice comprensivo di Else.
Questo è il codice dell'intera pagina....non fare caso a colori e posizione
dei layer...è giusto una prova, sto cercando di imparare...
<SCRIPT LANGUAGE="JavaScript">
function pos() {
var obj, z=0, x=0, j=0, port=0, dife=0, cent=0, atta=0, dT=document.theform;
	for (var i=0;i<dT.length;i++) {
		if (dT.elements[i].type=="checkbox" && dT.elements[i].checked) {
			//j+=dT.elements[i+1].value;
			z++;
			obj=document.getElementById("prova"); //SCRIVO NEL LAYER PROVA
			obj.innerHTML=dT.elements[i].value;
			//j+=Number(dT.elements[i+1].value);
			//dT.res.value=j;
	//dT.res.value=j;
 
			for (var x=0;x<dT.length;x++) {
				if (z==2) {
					if (dT.elements[x].type=="checkbox" && dT.elements[x].checked) {
						dT.elements[x].disabled=false;
					} else {
						dT.elements[x].disabled=true;
					}
				} else {
					dT.elements[x].disabled=false;
				}
			}
			} else {
		obj=document.getElementById("prova"); //SCRIVO NEL LAYER PROVA
		obj.innerHTML="cancelled";
		}
	}
}
</SCRIPT>
<form action="" method="post" name="theform">
<input ID="p" name="check" type="checkbox" value="pippo"
OnClick="pos()"><br>
<input ID="d" name="check" type="checkbox" value="pluto"
OnClick="pos()"><br>
<input ID="c" name="check" type="checkbox" value="paperino"
OnClick="pos()"><br>
<input ID="a" name="check" type="checkbox" value="clarabella"
OnClick="pos()">
</form>
<div ID="prova" STYLE="position:absolute; left:100; top:50; width:100;
height:100; background-color:Aqua">
</div>
<div ID="prova1" STYLE="position:absolute; left:100; top:150; width:50;
height:50; z-index:1; background-color:yellow">
<p>Questo è interno</p>
</div>
Ciao,



Il problema è che tu fai un ciclo su tutti gli elementi del Form e quindi su
tutti i CheckBox e perciò nel Layer ti fa vedere sempre il valore
dell'ultimo CheckBox..


 dell'ultimo CheckBox..
Ma non capisco perchè con l'ultimo else scriva sempre "cancelled" nel
layer..
OK, togliendo l'ultimo else e concludendo il primo if funziona bene, appare
il valore dell'ultima checkbox selezionata. Questo mi va bene. Ipotizziamo
che io voglia tanti layer quanti sono i checkbox e che selezionando il
checkbox "n" scrivo nel layer "n" corrispondente. Vorrei che deselezionando
la checkbox "n" scompaia il testo nel layer "n".


 "n".
Basta che tu scriva così:
obj.innerHTML = "";
Prova a vedere come ho scritto questo codice:
<html>
<body>
<SCRIPT LANGUAGE="JavaScript">
    // Alla funzione passi sia l'oggetto che richiama la funzione
    // sia il riferimento al Layer corrispondente.
    function pos(CurrentCheckBox, RelativeLayer) {
        if(CurrentCheckBox.checked){
            RelativeLayer.innerHTML=CurrentCheckBox.value;
        } else {
            RelativeLayer.innerHTML="";
        }
    }
</SCRIPT>
<form action="" method="post" name="theform">
<input ID="Check1" name="check" type="checkbox" value="pippo"
OnClick="pos(this, Layer1)"><br>
<input ID="Check2" name="check" type="checkbox" value="pluto"
OnClick="pos(this, Layer2)"><br>
<input ID="Check3" name="check" type="checkbox" value="paperino"
OnClick="pos(this, Layer3)"><br>
<input ID="Check4" name="check" type="checkbox" value="clarabella"
OnClick="pos(this, Layer4)">
</form>
<div ID="Layer1" STYLE="position:absolute; left:100; top:15; width:100;
height:20; background-color:Aqua">
</div>
<div ID="Layer2" STYLE="position:absolute; left:100; top:35; width:100;
height:20; background-color:Aqua">
</div>
<div ID="Layer3" STYLE="position:absolute; left:100; top:55; width:100;
height:20; background-color:Aqua">
</div>
<div ID="Layer4" STYLE="position:absolute; left:100; top:75; width:100;
height:20; background-color:Aqua">
</div>
</body>
</html>


OK, ho capito grazie mille
