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

    Convertire value in numero

    Buongiorno a tutti.
    Ho un semplicissimo problema. Ho la funzione refresh() così dichiarata:

    function refresh()
    {
    result.value = add1.value + add2.value;
    return true;
    }

    Nel corpo della mia pagina ho tre textbox, chiamate rispettivamente add1, add2 e result al cui evento onchange richiamano la funzione refresh. Il problema è che se io scrivo, ad esempio, il numero 3 nella prima textbox, e poi 4 nella seconda, nella textbox "result" mi appare "34" invece che "7", come mi auspicherei.
    Inoltre, se fosse possibile, mi servirebbe un metodo più "istantaneo" di 'onchange', perché con quest'ultimo devo per forza schiacciare 'tab' (o comunque togliere il focus dalla textbox 1 o 2) prima che la textbox 'result' si aggiorni.
    Chi mi saprebbe aiutare?
    Grazie a tutti anticipatamente.

    Andrea
    Don't know what I want, but I know how to get it...

  2. #2
    Raga, ho risolto da solo!

    function refresh()
    {
    result.value = parseInt(add1.value) + parseInt(add2.value);
    return true;
    }

    e l'evento adeguato è 'onpropertychange'.
    Grazie lo stesso a chiunque se ne fosse interessato.

    Andrea
    Don't know what I want, but I know how to get it...

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    non è corretto del tutto

    codice:
    function refresh() {
    result.value = parseInt(add1.value, 10) + parseInt(add2.value, 10);
    return true; // non serve
    }
    prova a usare il tuo codice scrivendo nei due campi ad es. 020 e 025 (invece di 20 e 25)


    l'evento più immediato potrebbe essere onkeyup
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4

    Ah... e cosa mi starebbe a significare quel 10?
    È vero, return non serve perché non c'è niente da 'returnare'!
    Grazie per l'aiuto.

    Andrea
    Don't know what I want, but I know how to get it...

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    che i numeri vengono convertiti in base 10

    se tu fai parseInt("012") ottieni 10 perchè se il numero ha uno zero davanti parseInt converte in formato ottale
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Grazie, stavo uscendo di senno...

    ...e quindi parseInt(12,8)=parseInt(012)=10, giusto?
    Mentre parseInt(12,10)=parseInt(12)=12, right?

    Don't know what I want, but I know how to get it...

  7. #7
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    no

    parseInt("012") = parseInt("012", 8) = 10;
    parseInt("012", 10) = 12;
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  8. #8
    :master:

    ... e parseInt(12) da solo?
    Don't know what I want, but I know how to get it...

  9. #9
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    12

    (il numero va tra apici cmq)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  10. #10
    Giusto.
    Ok ti ringrazio moltissimo.
    Ciao!
    Don't know what I want, but I know how to get it...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.