Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    71

    un piccolo aiuto su .each() jquery

    Ciao a tutti, arrivo subito al dunque del mio piccolo intoppo spero mi aiutiate.

    Ho creato un piccolo sistemino che permette di inserire dinamicamente degli input text
    "Campo1" "Campo2" "Prezzo" "Prezzo + iva"
    "Campo1" "Campo2" "Prezzo" "Prezzo + iva"
    "Campo1" "Campo2" "Prezzo" "Prezzo + iva"

    quello che non riesco a fare è in pratica inserire il prezzo nel campo "Prezzo" e calcolare il prezzo + iva nel rispettivo campo laterale "Prezzo + iva" con un .keyup().

    Fino ad ora ho implementato questo:
    codice:
    $('input[name="lp[]"]').each( myFunction );
            function myFunction()
            {
                var valore = 0;
                var valore_ivato= 0;
                   $('input[name="lp[]"]').keyup(function(){
                       valore=$(this).val();
                    valore_ivato=valore*1.22;
                    alert(valore_ivato)
                });
            }
    il problema è che questo funziona solo una volta e non per tutti i campi che hanno lo stesso nome.

    Lo so che è una cavolata, vi ringrazio anticipatamente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    71
    In realtà al posto dell'alert dovrebbe esserci il campo in cui si trova il prezzo ivato e cioè così:
    codice:
    $('input[name="lp[]"]').each( myFunction );
            function myFunction()
            {
                var valore = 0;
                var valore_ivato= 0;
                   $('input[name="lp[]"]').keyup(function(){
                       valore=$(this).val();
                    valore_ivato=valore*1.22;
                    $('input[name="lp_ivato[]"]').val(valore_ivato);
                });
            }

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, a prescindere dalla tua richiesta, qualcosa non mi torna nella logica del tuo script. Hai usato each per iterare gli elementi selezionati con $('input[name="lp[]"]'), ma dentro myFunction stai utilizzando lo stesso selettore per assegnare il keyup. Perchè non hai usato $(this)?

    Riguardo a ciò che chiedi, penso che dovresti usare un qualche selettore che faccia riferimento a $(this) per selezionare, ad esempio, il campo al suo fianco (quello che hai chiamato "rispettivo campo laterale"). Sarebbe più semplice aiutarti se posti anche la parte di codice html a cui fa riferimento quello script.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    71

    Risolto

    Ho risolto. In pratica ho modificato l'esempio che avevo postato sopra così:
    codice:
    $('input[name="lp[]"]').each( myFunction );
            function myFunction()
            {
                var valore = 0;
                var valore_ivato= 0;
                   $('input[name="lp[]"]').keyup(function(){
                       valore=$(this).val();
                    valore_ivato=valore*1.22;
                    $(this).parent().parent().find('input[name="lp_ivato[]"]').val(valore_ivato);
                });
            }
    Ora va perfettamente nel campo ivato rispettivamente a lato del campo prezzo.

    Per quanto riguarda .each( myFunction ); e quindi perchè non ho usato $(this), hai ragione KillerWorm è la stessa cosa e infatti non ha senso che chiami una funzione al ciclo each, ora lo modifico grazie.

    Grazie comunque del supporto.

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.