Newsgroup: it.comp.lang.javascript
Titolo: modifica campi value degli input

Ho un form di nome modulo. Nel form ho Z input text e il name di ognuno è
nome[x] con x=1...Z
Vorrei fare in modo che cliccando su una parola si impostano automaticamente
tutti i value degli input text con il valore del primo input text ovvero
name[1].value
Ho provato a fare qualcosa ma non funziona....

 nome[x] con x=1...Z
E' buona norma scrivere anche uno stralcio di codice e/o dare un link.
Per intenderci, quindi, tu hai questo codice HTML:
	<input type="text" name="nome[]" value="1" />
	<input type="text" name="nome[]" value="2" />
	<input type="text" name="nome[]" value="3" />
Oppure hai:
	<input type="text" name="nome[1]" value="1" />
	<input type="text" name="nome[2]" value="2" />
	<input type="text" name="nome[3]" value="3" />
?
-- 
~ "The demo effect, you don't expect"


Ho il seguente codice :
 <input type="text" name="nome[1]" id="prezzo" value="10" />
 <input type="text" name="nome[2]" id="prezzo" value="43" />
 <input type="text" name="nome[3]" id="prezzo" value="76" />
<...................................................................... />
<input type="text" name="nome[Z]" id="prezzo" value="99" />
Dovrei trovare tutti i campi input che hanno il name come sopra e impostare 
con un colpo solo il value di tutti al value del primo elemento ovvero 
nome[1] .
Quindi su onclick dovrei mettere una funzione javascript che mi fa diventare 
il codice cosi :
<input type="text" name="nome[1]" id="prezzo" value="10" />
 <input type="text" name="nome[2]" id="prezzo" value="10" />
 <input type="text" name="nome[3]" id="prezzo" value="10" />
<..........................................................................................>
<input type="text" name="nome[Z]" id="prezzo" value="10" />

 <input type="text" name="nome[Z]" id="prezzo" value="99" />
Ora la domanda sorge spontanea. A che pro hai questo tipo di codice?
Le quadre, ad esempio, che ci stanno a fare? Stai usando PHP? In PHP
però si hanno solo le quadre e non l'indice, ovvero:
	<input type="text" name="nome[]" value = "10" />
	<input type="text" name="nome[]" value = "30" />
Se quel codice l'hai impostato per PHP, devi quindi correggerlo. Se
invece non stai lavorando con PHP, allora elimina pure del tutto le
parentesi quadre che sono un'inutile complicazione, e dato che come
ti ho detto è lecito (e in casi come questi, consigliato) impostare
lo stesso name a più elementi, puoi semplicemente fare così:
	<input type="text" name="prezzo" value = "10" />
	<input type="text" name="prezzo" value = "20" />
	<input type="text" name="prezzo" value = "30" />
A questo punto "prezzo" è considerato un array di elementi:
	function mimic(){
		var 
			nds = document.getElementsByName("prezzo"),
			v = nds[0].value;
 
		for (var i=1;i<nds.length;i++)
			nds[i].value = v;
	}
funzione che puoi richiamare da qualsiasi punto del codice:
	<button onclick="mimic()">click</button>
Sapendo meglio il codice HTML della pagina, si può anche evitare di
utilizzare getElementsByName, appoggiandosi all'eventuale form.
-- 
~ "Il giusto altro non è che l'utile del più forte."
(Trasimaco)


Le quadre servono perche dentro ci va l'indice che č ricavato da un DB e in 
value un valore ricavato sempre dal DB.
<input type="text" name="nome[<? echo $indice ?>]" value = "<? echo $valore 
?>" />
Mi serve l'indice perche poi c'č una pagina php che prende il submit del 
form e attraverso gli indici fa determinate
operazioni di update sul db. Il tutto funziona gia alla perfezione, mi manca 
solo qualcosa che nella pagina mi imposti
i valori di tutti al valore del primo.
Quindi non posso mettere un name fisso quindi salta il getElementsByName.

 Quindi non posso mettere un name fisso quindi salta il getElementsByName.
Guarda, se anche tu non volessi modificare la logica del codice a
maggior ragione non "salterebbe" il getElementsByName.. Ma usarlo
a ogni step del ciclo (che è quello che ti tocca fare se mantieni
questo approccio errato) non è esattamente quello che si dice una
buona pratica di programmazione.
-- 
~ "Non sono solitamente un uomo che prega,
ma se sei lassù, per favore salvami,Superman."
(Homer Simpsons)