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:
Ho cercato di costruire questa funzione seguendo una certa logica ma evidentemente le mie lacune tecniche sono ancora troppo grandi.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 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.

Rispondi quotando