Visualizzazione dei risultati da 1 a 9 su 9

Discussione: problemi con eval !!!

  1. #1
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774

    problemi con eval !!!

    salve a tutti,
    ho un problema con questo assegnamento che utilizza la funzione eval.

    codice:
    var allevamento = eval('document.form1.'+index+'_QuantitaAllevamento').value;
    var macello= eval('document.form1.'+index+'_QuantitaMacello').value;
    il browser mi dice che gli manca un ";" ma a me sembra tutto corretto...
    voi sapete dirmi dov'è realmente l'errore?

    grazie mille
    citrus

  2. #2
    Utente di HTML.it L'avatar di lake86
    Registrato dal
    Dec 2006
    Messaggi
    705
    metti .value dentro eval

  3. #3
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    non funziona lo stesso
    altre opzioni?

  4. #4
    Utente di HTML.it L'avatar di lake86
    Registrato dal
    Dec 2006
    Messaggi
    705
    sintatticamento non ci sono errori, sei sicuro che index sia valorizzato e che il risultato esista?

  5. #5
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    Originariamente inviato da lake86
    sintatticamento non ci sono errori, sei sicuro che index sia valorizzato e che il risultato esista?
    assolutamente si...
    ho provato a stamapre degli alert con il contenuto dell'eval ed è tutto corretto...
    quale altro potrebbe essere il problema?

  6. #6
    codice:
    var allevamento = eval('document.form1.'+index+'_QuantitaAllevamento.value');
    var macello= eval('document.form1.'+index+'_QuantitaMacello.value');
    Così l'eval dovrebbe funzionare, altrimenti il problema è da qualche altra parte, se non l'hai già fatto fai una prova tipo questa:
    codice:
    alert("document.form1.1_QuantitaAllevamento.value");
    e guarda se ti stampa il valore del campo
    o prova col getElementById :master:
    o posta qualche riga di codice in più perchè allora l'errore non è lì
    --Fletto i muscoli e sono nel vuoto--

  7. #7
    E' uno spreco usare eval, basta usare le parentesi quadre:
    codice:
    var allevamento = document.form1[index + '_QuantitaAllevamento'].value;
    var macello= document.form1[index + '_QuantitaMacello'].value;
    Apparte questo segui il consiglio di Sballerio e inizia a usare getElementById e il DOM per ottenere i rifeimenti agli oggetti.


  8. #8
    Fai come ti suggerisce mega, usa le parentesi quadre ovvero le proprietà associative della collezione form.
    Eval è preferibile evitarlo finchè si può - alcuni approcci snob suggeriscono di evitarlo perchè fa apparire il codice amatoriale, ma il motivo per cui io suggerisco di evitarlo è che se si prende l'abitudine a non trovare alternative ad eval, si rischia di sviluppare una abitudine che poi si potrebbe trasportare anche sul lato del server side scripting, con conseguenze talora catastrofiche.

  9. #9
    Originariamente inviato da TrueLies
    Fai come ti suggerisce mega, usa le parentesi quadre ovvero le proprietà associative della collezione form.
    Eval è preferibile evitarlo finchè si può - alcuni approcci snob suggeriscono di evitarlo perchè fa apparire il codice amatoriale, ma il motivo per cui io suggerisco di evitarlo è che se si prende l'abitudine a non trovare alternative ad eval, si rischia di sviluppare una abitudine che poi si potrebbe trasportare anche sul lato del server side scripting, con conseguenze talora catastrofiche.
    Beh certo, fare un eval con una stringa inserita dall'utente non è il massimo dell'intelligenza, comunque in js si evita l'utilizzo di eval semplicemente per evitare un calo di prestazioni.

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.