L'oggetto che corrisponde a target è un input (textbox) che creo sempre tramite javascript e gli assegno l'id con:
votobox.id="v"+i;
comunque usando:
adesso gli arrivano i giusti parametri ma continua a dire:codice:imgtastiera.addEventListener('click', function(){ inserisciVoto(j,idsond); });
Uncaught TypeError: Cannot read property 'value' of null
at inserisciVoto (main.js:46)
at HTMLImageElement.<anonymous> (main.php?p=bacheca:225)
Il parseint non credo c'entri qualcosa visto che il target è un textbox e io vado a considerare il value che è un numero...
AGGIORNAMENTO:
indagando ancora più a fondo ho notato che ogni volta gli passa come valore di "j" il numero 6... quindi il problema sta qui ma non capisco come sia possibile che gli passi 6 se nel ciclo la j scorre da 0 a 5 e io glielo passo nel ciclo... ho provato anche a cambiare nome a j ma niente... passa sempre 6!
Se risolviamo sto fatto che passa "6" come j allora è tutto apposto visto che funziona tutto il resto e funziona passandoci i valori a mano.codice:for(var j=0;j<6;j++) { var imgtastiera=document.createElement("img"); imgtastiera.id="idimgtastiera"+j; var idsond=matrice[d][0]; imgtastiera.addEventListener('click', function(){ inserisciVoto(j,idsond); }); tastierabox.appendChild(imgtastiera); }
AGGIORNAMENTO 2:
Ho capito il perché. Il valore della variabile j viene interrogato solo nel momento in cui la funzione viene richiamata e cioè quando ci si clicca sopra e quindi dopo che il ciclo è concluso e la variabile ha raggiunto lo stato in cui viola la condizione, ovvero 6.... ora il problema è... come risolvere?!

Rispondi quotando