Newsgroup: it.comp.lang.javascript
Titolo: individuare un input in una riga di tabella

Buongiorno a tutti,
sto cercando di realizzare una specie di elenco intabellato, con
possibilità di modificare i valori presenti nell'elenco tramite appositi
radio bottoni presenti in ogni riga
La struttura è indicativamente questa
codice[] | opzione1[] | opzione2[] | prezzo[]
opzione1 e opzione2 sono radiobottoni o checkbox
Dovrei recuperare codice e prezzo via php (come array), e fino a qui
nessun problema, ma non riesco (diciamo che non riesco a capire come
fare) a fare in modo che, pigiando opzione1 o 2 il prezzo cambi.
Riesco ad indicare "manualmente" la riga con:
document.forms['nome_form'].elements['prezzo[]'][0].value
ma come faccio, facendo click sull'elemento di una riga, a estrapolare
l'indice dell'array di quell'elemento?
Prima che mi "cazziate", sto leggendo la reference del DOM, ma ogni
suggerimento è ben accetto...  ^_^
-- 
Mr. Fix @ work

 l'indice dell'array di quell'elemento?
Non estrapolando l'indice dell'array di quell'elemento.
Stai guardando il problema dal lato sbagliato: A cosa ti serve l'indice
dell'array di quell'elemento? A Recuperare un riferimento a tale elemento.
Orbene, salta il primo passaggio e recupera tale riferimento in modo
differente.
Se tu per esempio avessi qualcosa tipo:
<tr>
	<td><input type="text" name="codice[]" /></td>
	<td><input type="checkbox" name=opzione1[]" /></td>
	<td><input type="checkbox" name=opzione2[]" /></td>
	<td><input tytpe="text" name="prezzo[]" /></td>
</tr>
Ti basterebbe, una volta che è stato scatenato un evento su un qualsiasi dei
campi, tipo i checkbox, recuperare il parentNode dell'elemento che lo ha
scatenato, e quindi ottenere il TD. A quel punto, se sai che prezzo[] è
sempre inserito nella quarta cella, potresti recuperare il TR tramite
ulteriore parentNode, e poi con la collection cells puntare all'indice che
ti interessa: 3, nel nostro caso. O anche cells.length-1, se le colonne
possono variare, ma prezzo è sempre ultimo. Una volta ottenuta la TD il
firstChild sarà prezzo[] (a meno che non vi siano altri figli di mezzo).
Alternativamente, un metodo sicuramente più veloce per il programmatore, se
non vuoi/puoi giocare con indici e collection cells, puoi - sempre dalla TR
- invocare il metodo getElementsByName, passando "prezzi[]", e poi riferirti
al primo (e unico in questo caso) elemento così recuperato. E questo lo
ottieni a prescindere dalla posizione in cui si trova "prezzo[]" (a patto,
ovviamente, che sia dentro la TR).
Ho parlato di TD e TR perché hai tirato fuori il discorso delle "righe", ma
il concetto di base (e soprattutto l'ultimo esempio) si applicano anche in
casi diversi.
-- 
~ Non ci sono certezze, solo ragionevoli probabilità. (W. Howe)

 ti interessa: 3, nel nostro caso.
Ho cercato un po' in rete ma non ho mica capito... #^_^#
Cazzarola! Ho capito ora (spero...)
riga.cells[riga.cells.length - 1).firstChild
E me l'avevi pure scritto!!! Che pollo che sono!!!  
Grazie mille, mi hai risolto un sacco di problemi! A buon rendere : )


 Grazie mille, mi hai risolto un sacco di problemi! A buon rendere : )
De nada. :)
-- 
~ Il lavoro è prezioso. Non essere egoista! Lascialo agli altri!

 :)
ops, hai ragione, ma nel documento l'ho scritto giusto... ^_^
(l'ho corretto ora qualora qualcuno pensasse di fare un bel copia &
incolla...)
