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

    NAME dinamico per radio button

    Salve, ho un problema (probabilmente banale ) con una pagina HTML creata dinamicamente a partire da una tabella.
    Per ogni elemento di tabella viene anche creata una coppia di radio buttons: per far funzionare ciascuna coppia come entità distinta ho dovuto indicizzare il relativo NAME aggiungendo una variabile (un contatore) tramite codice DSP.
    I radio button in questo modo funzionano correttamente. Ora però non riesco a referenziarli tramite script, all'ìinterno di un ciclo for
    Se qualcuno può darmi una dritta ..
    Grazie

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367

    Re: NAME dinamico per radio button

    Originariamente inviato da gm56
    Ora però non riesco a referenziarli tramite script, all'ìinterno di un ciclo for
    Se qualcuno può darmi una dritta ..
    Grazie
    cioè? :master: potresti postare un po' di codice? Almeno la parte del form con i radio

  3. #3
    E' un problema perchè dovrei costruire un esempio depurato da tutto ciò che riguarda il servizio webMethods di riferimento, che è un sacco di roba e fa confusione..

    Per spiegarmi meglio: i radio hanno dei NAME del tipo document.nomeForm.NOME_RADIOi, dove i varia da 0 ad n, con n=numero record letti in tabella.

    Quando devo poi referenziare i radio nello script, non so come fare a costruire questo NAME variabile.

    Per esempio se devo referenziare un campo di tipo select:

    for(ind=0; ind<document.nomeFormTessuti.VETTORE.length; ind++)
    {
    var= document.nomeForm.NOME_SELECT[ind].value
    }

    Questo perchè NOME_SELECT è univoco, non ha un numero variabile appiccicato in fondo...


    Non so se ora è più chiaro.

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    quello che non mi è chiaro è che i radio per funzionare devono essere almeno 2 con lo stesso nome... da quanto dici tu sembrerebbe invece che abbiano tutti nomi differenti :master:
    Per leggere il valore del radio selezionato bisogna fare un ciclo sui radio con lo stesso nome e vedere qual'è checked
    (anche il valore della select andrebbe preso con una sintassi diversa da quella del tuo esempio)

  5. #5
    Ti ringrazio, ho risolto (l'avevo detto che era banale ;-) )


    Era così (per esempio per togliere il check):

    for(ind=0; ind<document.nomeForm.VETTORE.length; ind++)
    {
    eval("document.nomeForm.NOME_RADIO"+ind+"[0]").checked = false;
    eval("document.nomeForm.NOME_RADIO"+ind+"[1]").checked = false;
    }

    PS: sì, ovviamente i radio di una stessa coppia hanno lo stesso nome :-)

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    l'uso di eval è deprecato... sarebbe meglio se usassi questa sintassi
    codice:
    document.nomeForm.elements['NOME_RADIO'+ind][0].checked = false;

  7. #7
    Se ho capito bene il tuo esempio... ci avevo pensato.

    Purtroppo però in quel modo il ciclo for è sugli elements (gli elementi della form) e non sugli elementi della tabella-guida.
    A quel punto diventa un problema referenziare l'elemento di tabella. Il che mi serve perchè faccio un if su ciascuna coppia di radio per decidere se alcune righe devono essere visibili o meno.

    Naturalmente è possibile farlo (basta trovare l'espressione che lega i due indici ) però poi lo script è troppo legato a come è fatta la form (se si aggiunge un campo, bisogna ricalcolare l'espressione).

    Quindi penso che mi terrò l'eval :rollo:

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    guarda che questo
    codice:
    eval("document.nomeForm.NOME_RADIO"+ind+"[0]").checked = false;
    fa la stessa cosa di questo
    codice:
    document.nomeForm.elements['NOME_RADIO'+ind][0].checked = false;
    con la differenza che è più veloce e non è deprecato

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.