Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: CheckBox e somma

  1. #1

    CheckBox e somma

    codice:
    <form name=exf1>
    1<input type="checkbox" name="c1" onclick=showpicks() value="1">
    
    2<input type="checkbox" name="c2" onclick=showpicks() value="2">
    
    3<input type="checkbox" name="c3" onclick=showpicks() value="3">
    
    4<input type="checkbox" name="c4" onclick=showpicks() value="4">
    
    5<input type="checkbox" name="c5" onclick=showpicks() value="5">
    
    6<input type="checkbox" name="c6" onclick=showpicks() value="6">
    
    <input type=text onfocus=blur() name=t1 value="10">
    </form>
    <script type=text/javascript>
    function showpicks() {
      _s = "";
      if (document.exf1.c1.checked) _s += "1 ";
      if (document.exf1.c2.checked) _s += "2 ";
      if (document.exf1.c3.checked) _s += "3 ";
      if (document.exf1.c4.checked) _s += "4 ";
      if (document.exf1.c5.checked) _s += "5 ";
      if (document.exf1.c6.checked) _s += "6 ";
      document.exf1.t1.value = _s;
    }
    </script>
    E' possibile fare in modo che il valore di t1, inizialmente impostato uguale a 10, venga aumentato o diminuito, a secondo della selezione del checkbox, del valore di attribuzione dei vari checkbox?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non riesco a capire la domanda.

    Il tuo script sovrascrive il valore del campo t1, ogni volta che viene cliccato un checkbox, quindi non capisco cosa stai chiedendo.

    Nota: il codice HTML che usi e` riconosciuto dai browser piu` comuni, ma e` errato: potrebeb avere problemi con browser che seguono le regole del W3C:
    I valori degli attributi devono essere SEMPRE racchiusi tra apici o virgolette:

    6<input type="checkbox" name="c6" onclick="showpicks();" value="6">

    <input type="text" onfocus="blur();" name="t1" value="10">

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Originariamente inviato da Mich_
    Non riesco a capire la domanda.

    Il tuo script sovrascrive il valore del campo t1, ogni volta che viene cliccato un checkbox, quindi non capisco cosa stai chiedendo.

    Nota: il codice HTML che usi e` riconosciuto dai browser piu` comuni, ma e` errato: potrebeb avere problemi con browser che seguono le regole del W3C:
    I valori degli attributi devono essere SEMPRE racchiusi tra apici o virgolette:

    6<input type="checkbox" name="c6" onclick="showpicks();" value="6">

    <input type="text" onfocus="blur();" name="t1" value="10">

    Ciao
    Michele
    Ciao Mod

    Cerco di spiegarmi meglio......
    Lo script di cui sopra vorrei aggiungerlo nella fase di conclusione dell'ordine....
    ....t1 avrà come valore l'importo dell'ordine, i vari check avranno valori che, se selezionato il check box, verranno sommati a t1, e se deselezionati, i relativi valori, vengano invece sottratti da t1.

    ...intanto sistemo gli apici...

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E` sempre piu` confuso.

    Anzitutto lo script funziona?
    Se cliccki uno dei checkbox viene modificato il valore del campo t1?

    Tieni presente che per una programmazione pulita, quello script andrebbe inserito nella head della pagina.

    Poi c'e` il problema del nome della variabile. In linea di massima le variabili che iniziano con _ in JS sono riservate (variabili interne di JS).

    Potrebbe anche esserci un errore di confusione tra numeri e stringhe, che mi pare di leggere tra le righe, ma dato che non ho capito cosa vuoi fare con lo script, non ne sono sicuro.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Lo script l'ho trovato QUI e funziona, se clicco non viene modificato il valore di t1, facci un salto, viene semplicemente aggiunto il valore senza eseguire la somma.

    A me invece serve che al valore di t1 venga sommato il valore attribuito al check.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ecco che siamo al punto.
    La somma la esegue, ma viene fatta sulle stringhe, non sui valori numerici.

    Il tutto e` impostato in modo da lavorare sulle stringe, non sui numeri.

    Vedi questa modifica:
    codice:
    function showpicks() {
      var s = 0;
      if (document.exf1.c1.checked) s += 1;
      if (document.exf1.c2.checked) s += 2;
      if (document.exf1.c3.checked) s += 3;
      if (document.exf1.c4.checked) s += 4;
      if (document.exf1.c5.checked) s += 5;
      if (document.exf1.c6.checked) s += 6;
      document.exf1.t1.value = s;
    }
    Ma io preferirei mettere tutto in un loop:
    codice:
    function showpicks() {
      var s = 0;
      for (var i=1; i<=6; i++) {
        if(document.exf1.elements['c'+i].checked) s += i;
      }
      document.exf1.t1.value = s;
    }
    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Grazie Mich_ provo il tutto e poi ti dico

  8. #8
    La prima soluzione funziona, la seconda invece mi da un errore.....adesso però non riesco a far funzionare lo script all'interno della mia pagina ASP, non ricevo alcun messaggio di errore, lo script lo messo tra gli head ma non funziona..... appare il form ma quando seleziono un check non somma nulla.....

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Gli errori di sintassi rendono sempre la vita difficile.

    Dovresti pero` dire che errore ti da`; io l'errore non lo vedo (ma avendo scritto io il codice, i miei occhi sono annebbiati), per cui occorre la collaborazione del browser.

    Nota: controlla il codice che arriva nel browser (click destro e mostra HTML): l'ASP viene interpretato sul server e non arriva al client.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    L'errore, relativoche alla seconda soluzione, me lo da solo con FrontPage, messo sul server non da alcun errore

    http://www.pcbyte.it/prova/provasomma.htm

    , ma non effettua la somma:

    L'errore è questo:

    Linea: 14
    Carattere: 22
    Errore: Errore di sintassi
    Codice: 0

    Per quanto riguarda l'altro errore, relativo all'inserimento dello script con la prima soluzione nel mio file ASP, ho visualizzato il sorgente e ho ritrovato la parte di script inserita.....cosa dovrei controllare? :master:

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.