Salve, penso il mio problema sia molto semplice, ma dopo averci perso troppo tempo mi rivolgo al forum per un aiuto.
Ho creato un form che aggiunge campi a seconda di quanto desidera l'utente: il codice HTML è semplicemente
mentre il codice Javascript non dovrebbe far altro (in teoria) che copiare il codice html contenuto nel div readroot e copiarlo subito prima dello span writeroot. Questo è il codicecodice:<div id="readroot" style="display: none"> <input type="text" value="test" id="name" name="name"> </div> <form method="post" action="index.php"> <span id="writeroot"></span> Aggiungi record <input type="submit" value="Conferma" /> </form>
Viene tutto copiato regolarmente... Quello che succede, però, è che nè l'evento onclick che ho messo lì apposta per controllare ne il campo "name" di nessuno dei nodi figli viene effettivamente modificato!!!!codice:<script type="text/javascript"> var counter = 0; window.onload = moreFields(); function moreFields() { counter++; var newFields = document.getElementById('readroot').cloneNode(true); newFields.id = 'baba'; newFields.style.display = 'block'; var newField = newFields.childNodes; for (var i=0;i<newField.length;i++) { var theName = newField[i].name; if (theName) newField[i].name = theName + counter; newField[i].onclick = alert(this.name); } var insertHere = document.getElementById('writeroot'); inserted = insertHere.parentNode.insertBefore(newFields,insertHere); } </script>
Perchè succede questa cosa?!
Non sono espertissimo di Javascript e mi è venuto il dubbio che i valori vengano modificati solo all'interno della funzione per poi essere "dimenticati" appena fuori da essa, ma non sono riuscito a trovare evidenza di questo fatto![]()

Rispondi quotando