Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111

    length con un solo valore

    Ho definito una FORM che contiene n volte il campo checkbox di nome EW.

    Poi, per girare su questo campo, ho impostato un loop di questo tipo:


    for(var i=0;i<document.nomeform.EW.length;i++)


    Se la FORM contiene più di un campo EW, funziona tutto, se invece il campo EW è uno solo, non funziona più nulla e la document.nomeform.EW.length mi restituisce: "undefined".

    Come accidenti posso fare?

  2. #2
    Reale_Augello
    Guest

    Prova...

    ... a fare prima un controllo sulla lunghezza e agisci di conseguenza.

    Ciao !

  3. #3
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111
    Nel senso di verificare quanti campi EW esistono?
    E come faccio a controllarlo?
    Io pensavo di verificarlo tramite: document.nomeform.EW.length, ma è proprio questa che non funziona!

    A meno che io non possa intercettare l'errore "undefined"...

    E' possibile farlo?

  4. #4
    Reale_Augello
    Guest

    Certamente...

    ... puoi fare così:

    codice:
    if (document.nomeform.EW.length==undefined) alert("C'è solo un radio...");
    Fammi sapere !

  5. #5
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111
    Ho capito, credo, l'inghippo.

    JavaScript gestisce un "campo" come vettore (con tutti gli attributi del caso) o come singolo campo semplicemente in base al numero di elementi presenti, non in base ad una dichiarazione esplicita.

    Per capirci, se ho un solo campo EW, non potrò referenziarlo come:
    document.nomeform.EW[1].value

    Ma sempre come:
    document.nomeform.EW.value

    La definizione:
    document.nomeform.EW[1].value
    potrò usarla soltanto se esiste un document.nomeform.EW[2]...

    E' così?
    Come posso dirgli che EW è da considerarsi sempre come vettore?

  6. #6
    Reale_Augello
    Guest

    Sì...

    ... il tuo discorso è corretto.
    Perchè hai l'esigenza di trattare gli elementi del form sempre all'interno di vettori ?

    P.S.: il primo elemento di un vettore in JavaScript ha indice 0

  7. #7
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111
    Perchè devo andare a verificare quali checkbox sono stati "chekkati" in determinate situazioni.
    Il problema è che non so a priori quanti checkbox sono stati creati in una pagina.
    Possono essere dieci come uno...

  8. #8
    Reale_Augello
    Guest

    Provata...

    ... una cosa del genere ?

    codice:
    function ContaCeccati(f) {
     var conteggio=0;
     var myc=f.EW;
     if (myc.length==undefined) {
      if (myc.checked) conteggio++;
     }
     else {
      for (i=0; i<myc.length; i++) 
       if (myc[i].checked) conteggio++;
     }
     alert("I checkbox selezionati sono "+conteggio);
    }
    Fammi sapere !

  9. #9
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111
    Sì, caro Augello, dovrebbe funzionare...

    Il punto è che dovrei raddoppiare uno script che di suo è già complesso, dopodichè per ognuno dei due rami dovrei ripetere l'operazione perchè questo tipo di controllo mi tocca farlo anche per degli HIDDEN che sono relativi ad ogni checkbox e che cambiano (ahimè) anche questi di numero ogni volta.

    Mi vado a complicare troppo la vita.

  10. #10
    Reale_Augello
    Guest

    OK...

    ... ma non vedo alternative, almeno per ciò che le mie conoscenze mi permettono.
    Comunque, se vuoi una mano, io sono qui.

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.