grazie Xinod, devo confessarti che avevo gia letto il tuo script tentando di personalizzarlo ma, come vedi, senza successo. Nel frattempo non mi sono abbattuto e mettendo insieme un po' di appunti in giro per il web e rielaborando alla mia dilettantistica maniera ho realizzato quanto segue:
codice:
function clona_riga() {
var tb=document.getElementById('tabella').getElementsByTagName('tbody')[0]; //rif al tbody
var counter = tb.getElementsByTagName('tr').length;
var basetr = document.getElementById('dati');
var newtr = basetr.cloneNode(true);
for (var c=0;c<counter;c++)
newtr.setAttribute('id','dati'+c);// la nuova riga acquisisce il nuovo id
var tdArr = newtr.getElementsByTagName('td'); // prendo array TD della nuova riga e setto i vari attributi
tdArr[0].getElementsByTagName('select')[0].setAttribute('id','edificio'+c);
tdArr[0].getElementsByTagName('select')[0].setAttribute('name','edificio'+c);
tdArr[0].getElementsByTagName('select')[1].setAttribute('id','stanza'+c);
tdArr[0].getElementsByTagName('select')[1].setAttribute('name','stanza'+c);
tdArr[1].getElementsByTagName('input')[0].setAttribute('id','datau'+c);
tdArr[1].getElementsByTagName('input')[0].setAttribute('name','datau'+c);
tdArr[2].getElementsByTagName('select')[0].setAttribute('id','utente'+c);
tdArr[2].getElementsByTagName('select')[0].setAttribute('name','utente'+c);
tdArr[2].getElementsByTagName('select')[0].onchange=function(){data_rilascio('datau'+c);} // setto l'attributo onchange nel TD corrispondente alla select
tdArr[3].getElementsByTagName('input')[0].setAttribute('id','datae'+c);
tdArr[3].getElementsByTagName('input')[0].setAttribute('name','datae'+c);
tdArr[4].getElementsByTagName('select')[0].setAttribute('id','utente'+c);
tdArr[4].getElementsByTagName('select')[0].setAttribute('name','utente'+c);
tdArr[4].getElementsByTagName('select')[0].onchange=function(){data_riconsegna('datae'+c);}
}
for(var i=0; i<tdArr.length; i++){ //creo un loop utile per svuotare i campi input
if(i==1){
newtr.getElementsByTagName('td')[1].value='';
}
else if(i==3){
newtr.getElementsByTagName('td')[3].value = '';
}
}
document.getElementById('tabella').getElementsByTagName('tbody')[0].appendChild(newtr);
}
Ho cercato di costruire questa funzione seguendo una certa logica ma evidentemente le mie lacune tecniche sono ancora troppo grandi.
Ho seguito anche il tuo consiglio sul passare alle funzioni l'id degli input nel quale dovranno scrivere.
Non riesco a capire cos'è che non va, ad esempio lo strumento di sviluppo nel browser IE mi dice che newtr è indefinito...BAH! Sono ad un vicolo cieco. Cos'altro posso fare??
Grazie, ciao.