Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Testare l'esistenza di campi con nome dinamico

    Ho un problema piuttosto complesso.
    C'è una tabella contenente vari campi di modulo dai nomi MOLTO contorti e con una specie di indicizzazione che però non è utilizzabile per javascript. Ad esempio:

    campo1[1].campo campo2[1].campo campo3[1].campo
    campo1[2].campo
    campo1[3].campo

    Questi sono i nomi dei campi (!!!! ). Come vedete, nella prima riga esistono un campo1, un campo2 e un campo3, mentre nelle successive due esiste solo campo1.
    Ora, siccome io non so quali campi esistono e quali no, ho bisogno di un test che mi consenta di scoprire se il campo 'campo2[2].campo' esiste oppure no (in questo caso no).

    Normalmente, per testare l'esistenza di un campo potrei fare una cosa di questo tipo:
    Codice PHP:
    if (typeof(nomecampo) != 'undefined'
    dove 'nomecampo' sarebbe il nome del mio campo. Qui però non conosco a priori il nome del campo, per cui lo devo costruire con un algoritmo (che già ho) ed assegnarlo ad una variabile. A questo punto devo testare l'esistenza di un campo con il nome contenuto nella variabile, e qui nasce il problema: avevo pensato ad utilizzare eval, ma ho visto che se il campo esiste va tutto bene, mentre se non esiste prendo un errore.
    Il codice sarebbe più o meno questo, rispetto all'esempio di prima:
    Codice PHP:
    var nome 'nomecampo';
    if (
    typeof(eval(nome)) != 'undefined'
    E qui, come dicevo, se nomecampo esiste va tutto bene e il test riesce, ma se non esiste javascript segnala errore dicendo che 'nomecampo' è indefinito (che è proprio quello che volevo sapere, ma non con un errore!!)

    Spero che si capisca il problema, e soprattutto che qualcuno abbia una soluzione da suggerire.

    Thanks

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    nomecampo = "campo2[2]";
    if (document.nomeForm.elements[nomecampo])

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.