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

    chiedo aiuto per questo checkbox!!!!!

    Ho queste righe di codice:


    <input name="qta1" type="checkbox" value="2" onClick="aggiornadaclick(1);" />
    <input name="qta2" type="checkbox" value="5" onClick="aggiornadaclick(2);" />
    <input name="qta3" type="checkbox" value="9" onClick="aggiornadaclick(3);" />


    Se seleziono un checkbox, l'evento "aggiornadaclick()" calcola il totale:
    totale = (qta1 + qta2 + qta3)
    Se seleziono qta1 e qta2, il totale è:7
    Il problema sorge quando tolgo la spunta dal checkbox!
    Esempio: Se tolgo la spunta a qta1, il totale dovrebbe diventare 5, ma per qualche ragione, resta 7.
    Mi hanno consigliato di creare una piccola funzione che controlla se il campo è checked, o se è disabilitato. Se è checked, il value viene calcolato al totale... in caso contrario, il value non viene calcolato... Purtroppo, non ho la più pallida idea di come si faccia!
    Potete scrivermi una piccola funzione che possa fare al caso mio?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Uno dei tanti modi per risolvere:
    codice:
    <script>
    function aggiornadaclick(f) {
    	tot = 0;
    	tot += (f.qta1.checked)?2:0;
    	tot += (f.qta2.checked)?5:0;
    	tot += (f.qta3.checked)?9:0;
    	f.totale.value=tot;
    }
    </script>
    
    <form>
      <input name="qta1" type="checkbox" value="2" onClick="aggiornadaclick(this.form);" />
    <input name="qta2" type="checkbox" value="5" onClick="aggiornadaclick(this.form);" />
    <input name="qta3" type="checkbox" value="9" onClick="aggiornadaclick(this.form);" />
    <input type="text" name="totale" readonly>
    </form>
    Occhio al titolo della discussione
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma sopratutto non ri-postare per lo stesso problema http://forum.html.it/forum/showthrea...readid=1421115 anche se la discussione è stata spostata
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4

    Chiedo scusa....

    Chiedo scusa.... ma ero veramente disperato.....
    Adesso, con qualche piccola modifica, sono riuscito ad integrare il codice che mi avete dato....
    Mi da ancora un piccolo problema....

    Ho scritto:

    <script language="javascript">
    <!--
    function aggiornaclick(f) {
    tot = 0;
    tot += (f.pta1.checked)?1:0;
    tot += (f.pta2.checked)?2:0;
    tot += (f.pta3.checked)?3:0;
    tot += (f.pta4.checked)?4:0;
    tot += (f.pta5.checked)?5:0;
    tot += (f.pta6.checked)?6:0;
    f.qta1.value=tot;
    }
    // Fine codice javascript. -->
    </script>

    <table width="140"><tr><td valign="top">
    <input name="pta1" type="checkbox" value="1" onClick="aggiornaclick(this.form);" /> 1 kg

    <input name="pta2" type="checkbox" value="2" onClick="aggiornaclick(this.form);" /> 2 kg

    <input name="pta3" type="checkbox" value="3" onClick="aggiornaclick(this.form);" /> 3 kg

    </td><td valign="top">
    <input name="pta4" type="checkbox" value="4" onClick="aggiornaclick(this.form);" /> 4 kg

    <input name="pta5" type="checkbox" value="5" onClick="aggiornaclick(this.form);" /> 5 kg

    <input name="pta6" type="checkbox" value="6" onClick="aggiornaclick(this.form);" /> 6 kg

    </td></tr></table>
    <input name="qta1" type="text" value="" size="2" maxlength="2" onfocus="aggiornadaclick(1);"> Kg


    l'input "qta1" si aggiorna immediatamente senza problemi....
    l'input del totale finale, (qta1 + qta2 + qta3 + etc... ) invece, si aggiorna solo se clicco con il mouse nell'input qta1.
    Se uno si dimentica, rischia di ottenere un risultato sbagliato.
    Come faccio ad aggiornarlo senza dover cliccare nel campo qta1?

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ma dov'e' l'imput "del totale finale"? e cosa dovrebbe contenere il suddetto campo?? e la funzione "aggiornadaclick1"??? e che fa la suddetta funzione????

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    L'input del totale finale si trova a 6000 righe più sotto ed è questo:
    <input name="totale" type="text" value="0.00" readonly size="7" disabled="disabled">

    Dovrebbe contenere la somma dei vari qta(x)

    <input name="qta1" type="text" value="" size="2" maxlength="2" onfocus="aggiornadaclick(1);">

    <input name="qta2" type="text" value="" size="2" maxlength="2" onfocus="aggiornadaclick(2);">

    <input name="qta3" type="text" value="" size="2" maxlength="2" onfocus="aggiornadaclick(3);">

    Viene calcolato tramite la funzione "aggiornadaclick"!

    A loro volta, i vari qta(x) vengono calcolati tramite la funzione "aggiornaclick"

    Es: qta1 = pta1 + pta2 + pta3 + etc....
    qta2 = .....

    Come ho già scritto, la somma dei qta(x) viene calcolata senza problemi.....
    La somma del totale, invece, viene modificata solo se clicco con il mouse nell'input del qta.
    So che la colpa è dell'evento onfocus che si verifica quando la finestra riceve il focus, ma non trovo l'evento che possa risolvermi il problema....
    Avete qualche idea?

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da VirtualVeV
    Avete qualche idea?
    Dalla descrizione che ne hai fatto non si puo' essere del tutto certi... ma posso azzardare :

    function aggiornaclick(f) {
    tot = 0;
    tot += (f.pta1.checked)?1:0;
    tot += (f.pta2.checked)?2:0;
    tot += (f.pta3.checked)?3:0;
    tot += (f.pta4.checked)?4:0;
    tot += (f.pta5.checked)?5:0;
    tot += (f.pta6.checked)?6:0;
    f.qta1.value=tot;
    aggiornadaclick1();
    }

    ... ma non vedendo la pagina reale in questione consideralo solo un suggerimento tutto da verificare.

    ciao

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8


    Funziona tutto!!!!!
    Ho aggiunto la riga aggiornadaclick(1); e tutti i miei problemi sono scomparsi!


    GRAZIE!!!!!!!!!!!!

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.