Visualizzazione dei risultati da 1 a 6 su 6

Discussione: variabili globali

  1. #1

    variabili globali

    Salve a tutti.
    Ho uno script nel quale vorrei poter includere delle variabili "globali" visibili da tutte le funzioni dello script stesso. Ho inserito, fra i tag <script language="javascript"> e </script>, il seguente codice:

    var A = window.document.getElementById('mq').value;
    var B = window.document.getElementById('euromq').value;
    var C = window.document.getElementById('coefficienteeta'). value;
    var R = window.document.getElementById('result').value;

    function coeff_eta(n)
    {
    var x;
    [...calcoli eseguiti su x...]
    C=x;
    }

    function media()
    {
    //codice omesso
    }

    function refresh()
    {
    if ((parseInt(A, 10)!=A)||(parseFloat(B)!=B))
    R='---';
    else
    R=parseInt((parseInt(A, 10) * parseFloat(B) * media() * parseFloat(C))*100,10)/100;
    }

    Per non dover scrivere ogni volta window.document.getElementById..., ho pensato di memorizzare tali valori in altrettante variabili A, B, C e R, e le ho scritte all'esterno di ogni funzione perché devono essere utilizzate da tutte le funzioni.
    Ma al caricamento pagina mi viene restituito subito l'errore:

    Riga: 20
    Carattere: 1
    Errore: Necessario oggetto
    Codice: 0

    Il carattere 1 della riga 20 è la 'v' di 'var A...' nella prima riga del codice script.
    Chi mi saprebbe aiutare?
    Grazie a tutti anticipatamente!

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

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,923
    se tu dichiari globali delle variabili riferimento ad un nodo, queste saranno valorizzate man mano che la pagina viene caricata.

    Quindi al momento dell'assegnazione non esiste nessun elemento me, euromq ecc. ecc.


    io ti suggerisco di cambiare il tuo script così:


    codice:
    var A,B,C,R;
    
    function setvars() {
      A = window.document.getElementById('mq').value;
      B = window.document.getElementById('euromq').value;
      C = window.document.getElementById('coefficienteeta').value;
      R = window.document.getElementById('result').value;    
    }
    
    ... // resto dello script
    e poi

    codice:
    <body onload="setvars()">

    Ciao
    Vuoi aiutare la riforestazione responsabile?

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

  3. #3
    OK grazie provo e poi ti faccio sapere!!!

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

  4. #4
    Per funzionare funziona, ma non ottengo il risultato desiderato.
    Infatti i valori dei campi mq, euromq ecc..., al caricamento pagina, sono inizializzati a 0, e quindi vanno a 0 anche le variabili A,B,C ed R. Poi però l'utente modifica questi campi, e quindi le 4 variabili dovrebbero aggiornarsi; ovviamente ciò non avviene, a meno che non si richiami la funzione setvars() ad ogni modifica, ma è troppo laborioso! Preferisco andare a sostituire window.document.getElementById('mq').value al posto di A, e idem per le altre variabili, dove queste compaiono nello script.
    Grazie lo stesso.

    Andy
    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,923
    non perderti per così poco: modifica così


    codice:
    function setvars() {
      A = window.document.getElementById('mq');
      B = window.document.getElementById('euromq');
      C = window.document.getElementById('coefficienteeta');
      R = window.document.getElementById('result');    
    }
    e poi nelle altre funzioni leggi i valori con A.value, B.value ecc ecc.
    Vuoi aiutare la riforestazione responsabile?

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

  6. #6
    Uuuuh, succulento!
    Grazie mille!
    E complimenti per il sito!

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