Visualizzazione risultati 1 fino 6 di 6

Discussione: [Javascript] Sommare 2 numeri..

  1. #1
    Guest

    Predefinito [Javascript] Sommare 2 numeri..

    Ciao a tutti!
    So che quello che sto per chiedere è una cavolata, ma non riesco a trovare il modo di uscrine.
    Io ho un input con un valore, esempio 50 ed un checkbox che, cliccandoci sopra, vede se era ceccato o no e aggiunge o toglie un valore prefissato all'input.
    Semplice, no? Eppure mi sono bloccato.
    Codice HTML:
    <script>
    
    function aggiungi(valore){
      document.getElementById('mb').value=document.getElementById('mb').value + valore;
    }
    function togli(valore){
      document.getElementById('mb').value=document.getElementById('mb').value - valore;
    }
    </script>
    
    
    <input type="checkbox" name="123456" value="123456" onclick="if(this.checked){aggiungi('30');}else{togli('30');}">
    <input type="text" id="mb" name="mb" value="50" size="20">
    La sottrazione funziona, la somma no..
    Aiuto!

  2. #2
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    sei sicuro di averlo postato giusto; a me da errore di visualizzazione (si vede il box ma non riesco a fare ne somma ne sottrazione) e andando a vedere il messaggio mi da problemi nell' if dentro l'attributo onclick.


    -- Aut Roma Aut Nihil!

  3. #3
    Guest

    Predefinito

    A me funziona, la console javascript di firefox non mi dice niente...

    EDIT: C'è uno spazio di troppo nel document.GetEl ementById che si è aggiunto misteriosamente..
    Ultima modifica di allo : 22-02-2006 alle ore 18.00.44

  4. #4
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Hai ragione, non mi ero accorto di quello spazio! Il problema è che 30 lo toglie mentre quando lo aggiungo, non lo somma bensì scrive 30 accanto alla cifra preesistente, giusto?

    Edit: se il problema è questo, ti ho risolto così, anche se non mi spiego perchè non accetta il segno +!
    Codice HTML:
    <script>
    function aggiungi(valore){
    document.getElementById('mb').value=document.getElementById('mb').value - (-valore);
    }
    function togli(valore){
    document.getElementById('mb').value=document.getElementById('mb').value - valore;
    }
    </script>
     
    <input type="checkbox" name="123456" value="123456" onclick="if(this.checked){aggiungi('30');}else{togli('30'); }">
    <input type="text" id="mb" name="mb" value="50" size="20">
    Edit2: occhio che nel post vengono sempre aggiunti quegli spazi di cui si parlava sopra
    Ultima modifica di seneca : 22-02-2006 alle ore 18.16.08


    -- Aut Roma Aut Nihil!

  5. #5
    Guest

    Predefinito

    Sì, il problema è proprio quello...
    Ma non ci siamo... sbaglia a fare i conti..

    Per chiarire le idee: http://allo.altervista.org/demo/
    E' una pagina per copiare le foto dalla macchina fotografica al pc (da far girare in locale..)

    EDIT: Ma javascript sa contare?
    Codice HTML:
    <script>
     function dim(quanto){		  document.getElementById('bla').value=document.getElementById('bla').value-quanto;
     }
    </script>
    <input type="text" id="bla" value="50">
    <a href="javascript:dim('5.4')">Diminuisci</a>
    Se si arriva intorno al 30/40 tira fuori una sfilza di zeri!!!
    Ultima modifica di allo : 22-02-2006 alle ore 20.27.18

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Problema #1: perché il + non funziona?
    Perché in JS il + è usato sia per sommare i numeri che per concatenare stringhe. Dato che il valore di un campo di testo è considerato stringa, il numero viene "promosso" a stringa e concatenato. Ecco perché, ad esempio, 50 + 30 sembrava darti 5030, perché in realtà '50' era la stringa.
    Per risolvere il problema, puoi usare le funzioni parseInt() (se hai un intero) o parseFloat() (se hai un decimale)

    Problema #2: metti gli apici sui numeri da aggiungere o togliere
    Perché? Se si tratta di numeri, non serve, anzi, rischi di provocare danni simili al problema #1...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •