Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    copiare il valore di un campo in un altro campo

    Buongiorno

    Ho un elenco di prodotti da inserire in un carrello. Ogni volta che inserisco un prodotto devo inserire la quantità acquistata, il prezzo pieno e il prezzo scontato.
    Se non esiste il prodotto non è scontato vorrei che il campo "prezzo scontato" sia uguale a prezzo prodotto.
    utilizzo questo codice Javascript
    codice:
    function copia_prezzo(str)
    {
    	document.getElementById("costo_acq").value = str;
    	{
    	document.getElementById("sconto_acq").value = str;
    	}
    }
    che funziona perfettamente se è il primo prodotto, ma non funziona per tutti gli altri (cioè funziona ma copia il prezzo nella prima riga e non in quella giusta).

    posto il codice della tabella con l'elenco... la funzione che non va è "copia_prezzo"
    codice:
    <% 
    While ((Repeat3__numRows <> 0) AND (NOT rs_elenco_prodotti.EOF)) 
    %>
    <form id="form_inserimento" name="form_inserimento" method="post" >
      <tr>
        <td>[b]<%=(rs_elenco_prodotti.Fields.Item("nome_pro").Value)%></td>   
        <td align="center"><input name="qta_acq" type="text" class="small" id="qta_acq" title="Quantità" value="1" onBlur="check_qta(this.id,this.title,this.value)" /></td>
        <td align="center"><input name="costo_acq" type="text" class="small" id="costo_acq" title="Prezzo" onKeyUp="copia_prezzo(this.value);" onBlur="check_pzo(this.id,this.title,this.value)" value="0" /></td>
        <td align="center"><input name="sconto_pzo" type="text" class="small" id="sconto_acq" title="Sconto" onBlur="check_pzo(this.id,this.title,this.value)" value="0" /></td>
        <td align="center"><input name="" type="submit" /></td>  
      </tr></form>
    <% 
    
    		  Repeat3__index=Repeat3__index+1
    		  Repeat3__numRows=Repeat3__numRows-1
    		  rs_elenco_prodotti.MoveNext()
    		Wend
    		
    %>
    spero di essere stato chiaro...
    qualcuno mi sa dire come fare?
    grazie

  2. #2
    Non funziona perché tutti i campi di input hanno lo stesso id, quindi il getElementById ti ritorna il primo che trova (il primo della lista)

    Hai due soluzioni;

    1)Cambiare l'ID aggiungendoci una desinenza che indica che quello e' il campo di input i-esimo (es. qta_acq[1] qta_acq[2] e cosi' via)

    2) usare il getElementsByName('nomecampo')[indice]. Facendo cosi' passa anche al tuo metodo javascript l'indice attuale del ciclo while e usalo come indice del getElementsByName

  3. #3
    per prima cosa ti ringrazio...
    avevo pensato anche io di fare così ma mi sorge un dubbio, poi come lo richiamo nella function?
    poniamo che io richiami l'ID costo_acq2, come faccio a dirgli

    codice:
    function copia_prezzo(str)
    {
    	document.getElementById("costo_acq2").value = str;
    	{
    	document.getElementById("sconto_acq2").value = str;
    	}
    }
    visto che costo_acq è un valore che inserisco io manualmente nel codice?
    dovrei passare anche il nome del campo... ma come faccio?

  4. #4
    codice:
    function copia_prezzo(str,indice)
    {
    	document.getElementById('costo_acq'+indice).value = str;
    	{
    	document.getElementById('sconto_acq'+indice).value = str;
    	}
    }

  5. #5
    grandissimo... come avrai intuito sono un po' ignorante...

  6. #6
    Figurati, felice di averti aiutato

  7. #7
    piccolo problema...
    questo è il mio form di inserimento:

    codice:
    <form id="form_inserimento" name="form_inserimento" method="post" action="javascript:void%200"  onsubmit="aggiungi('<%=(rs_elenco_prodotti.Fields.Item("confezione_id").Value)%>','<%=request("spesa_id")%>','<%=request("tipologia_id")%>',this.qta_acq.value,this.costo_acq.value,this.sconto_acq.value)">
    ovviamente dovrei mettere il valore "indice" anche ai this.qta_acq.vale, this.costo_acq.value e this.sconto_acq.value se no il form non funziona più...

    come faccio?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.