Newsgroup: it.comp.lang.javascript
Titolo: assegnare checked costruendo una check ...

Devo creare dinamicamente le righe di una tabella, in js
(al caricamento della pagina se ci sono dati o su richiesta
dell'utente tramite apposito tasto).
Sto lavorando in un'applicazione struts.
Questo il codice:
var id = 1;
function accoda(param1, param2, param3, param4, check ,param5) {
	//se non vengono passati tutti gli argomenti, imposto dei valori
standard
       //sto creando una riga vuota
	if(arguments.length < 5) {
		param1 =  param2 = param3 = param4 = param5= "";
 		check = 'N';
	}
	//copio la riga master (è sempre visibile una riga nella pagina)
	var newTR  = document.getElementById("riga_master").cloneNode(true);
	newTR.id = "riga" + id; //Dò un id alla riga
	//mi prendo i nodi figli
	var input = newTR.getElementsByTagName("INPUT");
	var select = newTR.getElementsByTagName("SELECT");
	var opzioni = select[0].getElementsByTagName("OPTION");
	input[0].checked = true;
	input[0].name = "riga" + id;
	input[1].value=cf;
	input[1].name=(id+1)+"dt";
	input[2].value=dtNascita;
	input[2].id=(id+1)+"dt";
	input[3].value=dtInizioDir;
	input[4].value=dtFineDir;
	input[5].id=(id+1)+"ester";
	if(check == 'S'){
		input[5].checked = true;
		}
	else
		input[5].checked = false;
	select[0].value=tipo
	for(i = 0;i < opzioni.length;i++) {
		if(opzioni[i].value == tipo)
			select[0].selectedIndex = i;
	}
	//funzione per il cf
	input[1].onkeyup = function() {
		if(this.value.length==16){
			this.value = this.value.toUpperCase();
			document.getElementById(
this.name
).value=setFunzione(this);
		}
	}
	//Accodo la riga
	document.getElementById('tab_familiari').appendChild(newTR);
}
============
input[5] è appunto un checkbox, ma così facendo non mi viene assegnato
checked alla mia checkbox, neanche quando il parametro passato è 'S'.
Se invece uso il seguente codice
============
var id = 1;
function accoda(param1, param2, param3, param4, check ,param5) {
	//se non vengono passati tutti gli argomenti, imposto dei valori
standard
       //sto creando una riga vuota
	if(arguments.length < 5) {
		param1 =  param2 = param3 = param4 = param5= "";
		check = 'N';
	}
	//copio la riga master (è sempre visibile una riga nella pagina)
	var newTR  = document.getElementById("riga_master").cloneNode(true);
	newTR.id = "riga" + id; //Dò un id alla riga
	//mi prendo i nodi figli
	var input = newTR.getElementsByTagName("INPUT");
	var select = newTR.getElementsByTagName("SELECT");
	var opzioni = select[0].getElementsByTagName("OPTION");
	input[0].checked = true;
	input[0].name = "riga" + id;
	input[1].value=cf;
	input[1].name=(id+1)+"dt";
	input[2].value=dtNascita;
	input[2].id=(id+1)+"dt";
	input[3].value=dtInizioDir;
	input[4].value=dtFineDir;
	input[5].id=(id+1)+"ester";
	select[0].value=tipo
	for(i = 0;i < opzioni.length;i++) {
		if(opzioni[i].value == tipo)
			select[0].selectedIndex = i;
	}
	//funzione per il cf
	input[1].onkeyup = function() {
		if(this.value.length==16){
			this.value = this.value.toUpperCase();
			document.getElementById(
this.name
).value=setFunzione(this);
		}
	}
	//Accodo la riga
	document.getElementById('tab_familiari').appendChild(newTR);
if(check == 'S'){
		document.getElementById((id+1)+"ester").checked = true;
	}
	else
		document.getElementById((id+1)+"ester").checked = false;
	//incremento l'ID;
	id++;
}
====================================================
ovvero se assegno il checked DOPO aver creato la riga non ho
problemi .
Però al caricamento della pagina, usando l'ultima funzione, mi
riordina le righe, visualizzando prima quelle con chek selezionata e
poi quelle senza selezione, cosa che vorrei evitare, mostrando
all'utente la situazione che ha effettivamente lasciato.
Idea di quel che accade??
Perchè la seconda funziona e la prima no??

 Idea di quel che accade??
A questo mi rispondo da sola, concentrata sul js non avevo pensato che
prima del ri-caricamento della pagina c'è una connessione al db,
quindi una select e l'ordinamento è quel che passa lui ^^
L'altra domanda resta, se vi viene in mente qualcosa .
Grazie in anticipo