HighDots Forums  

modifica campi value degli input

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss modifica campi value degli input in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
pippo
 
Posts: n/a

Default modifica campi value degli input - 12-19-2007 , 05:16 AM






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....


Reply With Quote
  #2  
Old   
ZER0
 
Posts: n/a

Default Re: modifica campi value degli input - 12-19-2007 , 07:30 AM






On Wed, 19 Dec 2007 12:16:04 +0100, pippo wrote:

Quote:
Ho un form di nome modulo. Nel form ho Z input text e il name di ognuno è
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"



Reply With Quote
  #3  
Old   
pippo
 
Posts: n/a

Default Re: modifica campi value degli input - 12-19-2007 , 07:44 AM




"ZER0" <zer0.shock (AT) libero (DOT) it> ha scritto nel messaggio
news:1wpzoe6iut436.dlg (AT) ID-171124 (DOT) news.individual.net...
Quote:
E' buona norma scrivere anche uno stralcio di codice e/o dare un link.
Per intenderci, quindi, tu hai questo codice HTML:

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" />






Reply With Quote
  #4  
Old   
ZER0
 
Posts: n/a

Default Re: modifica campi value degli input - 12-19-2007 , 08:13 AM



On Wed, 19 Dec 2007 14:44:58 +0100, pippo wrote:

Quote:
E' buona norma scrivere anche uno stralcio di codice e/o dare un link.
Per intenderci, quindi, tu hai questo codice HTML:

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" /
Mi sa che hai un po' di confusione sulle basi: l'attributo name può
essere anche associato a più di un elemento mentre l'id DEVE essere
univoco (lo dice anche il nome).
Qui invece hai fatto tutto il contrario, ci sono ben tre tag aventi
lo stesso id ma name differente.

Quote:
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)



Reply With Quote
  #5  
Old   
pippo
 
Posts: n/a

Default Re: modifica campi value degli input - 12-19-2007 , 08:45 AM




"ZER0" <zer0.shock (AT) libero (DOT) it> ha scritto nel messaggio
news:10ry63ljw40xd.dlg (AT) ID-171124 (DOT) news.individual.net...
Quote:
On Wed, 19 Dec 2007 14:44:58 +0100, pippo wrote:

Mi sa che hai un po' di confusione sulle basi: l'attributo name può
essere anche associato a più di un elemento mentre l'id DEVE essere
univoco (lo dice anche il nome).
Qui invece hai fatto tutto il contrario, ci sono ben tre tag aventi
lo stesso id ma name differente.
OK eliminato tag id dagli input.

Quote:
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:

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.






Reply With Quote
  #6  
Old   
ZER0
 
Posts: n/a

Default Re: modifica campi value degli input - 12-19-2007 , 09:10 AM



On Wed, 19 Dec 2007 15:45:21 +0100, pippo wrote:

Quote:
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:

Le quadre servono perche dentro ci va l'indice che è ricavato da un DB e in
value un valore ricavato sempre dal DB.
E' un approccio formalmente sbagliato. Sia per PHP (e se butti un
occhio al manuale di PHP capisci il perché) che per Javascript.

Se "l'indice" in questione è un ID di un record, andrebbe gestito
diversamente.

Eliminando l'indice dal name, sia JS che PHP nativamente ti vanno
a gestire gli input come array di elementi, che è quello che stai
cercando di "emulare" tu, complicando però il tutto.

Come ti ho scritto, facendo:

<input type="text" name="prezzi[]" value="10" />
<input type="text" name="prezzi[]" value="20" />
<input type="text" name="prezzi[]" value="30" />


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.