Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: getElementById

  1. #1

    getElementById

    Ho questi 3 bottoni radio:

    <input type="RADIO" class="input_pulsante" name="modo_pagamento" id="modo_pagamento" value="bonifico">Bonifico Bancario


    <input type="RADIO" class="input_pulsante" name="modo_pagamento" id="modo_pagamento" value="contrassegno">Contrassegno


    <input type="RADIO" class="input_pulsante" name="modo_pagamento" id="modo_pagamento" value="carta_credito">Carta di Credito


    come faccio a prendere con il getElementById il primo, o il secondo o il terzo bottone radio?

    Ho fatto in questo modo ma prendo sempre e solo il primo bottone
    alert( document.getElementById("modo_paga" , 0).value );
    alert( document.getElementById("modo_paga" , 1).value );
    alert( document.getElementById("modo_paga" , 2).value );

    Help Me

  2. #2
    alert( document.getElementById('modo_paga')[0].value);
    alert( document.getElementById('modo_paga')[1].value);
    alert( document.getElementById('modo_paga')[2].value);


  3. #3
    non funziona!!!

  4. #4
    Innanzitutto diciamo che un id può ricorrere una sola volta all'interno di una struttura (X)HTML, essendo appunto un identificatore univoco.

    Dovresti avere, quindi:

    codice:
    <input id="modo_pagamento_bonifico" 
       name="modo_pagamento" 
       type="radio" 
       class="input_pulsante" 
       value="bonifico" /> 
    <label for="modo_pagamento_bonifico">Bonifico bancario</label>
    
    <input id="modo_pagamento_contrassegno" 
       name="modo_pagamento" 
       type="radio" 
       class="input_pulsante" 
       value="contrassegno" /> 
    <label for="modo_pagamento_bonifico">Contrassegno</label>
    
    <input id="modo_pagamento_carta" 
       name="modo_pagamento" 
       type="radio" 
       class="input_pulsante" 
       value="carta_credito" /> 
    <label for="modo_pagamento_carta">Carta di credito</label>
    Nel javascript, poi:

    codice:
    alert( document.getElementById('modo_pagamento_bonifico').value );
    alert( document.getElementById('modo_pagamento_contrassegno').value );
    alert( document.getElementById('modo_pagamento_carta').value );

  5. #5
    Sono sicuro che si può risolvere senza modificare il nome dei campi, anche perchè lo facevo in un'altra vita, ora non mi ricordo come ...
    ma era qualcosa tipo quello che ha segnalato ...

    dvjack
    alert( document.getElementById('modo_pagamento')[0].value);

    ma così non funziona

    anche perchè quel campo lo passo in asp in un'altra pagina e catturandomi il valore di modo_pagamento conosco quale pagamento ha cliccato.

  6. #6
    mi sa che ho sparato una grossa cavolata...
    come giustamente ha detto pierfix, il mio metodo non può funzionare, mi son confuso con l'altra sintassi, quando ciè accedi ai radio passando dal document.TuoForm.NomeRadio, che allora fai come se fossero un array....
    Gli id devono essere univoci...e cmq con la soluzione pierofix, spedendo la pagina ad un'altra in asp, tu ti ricavi il valore del radio, dall'attributo name (che può essere uguale per + elementi di un form) e non id...

    scusa x la panzana

  7. #7
    Originariamente inviato da senorluca
    Sono sicuro che si può risolvere senza modificare il nome dei campi, anche perchè lo facevo in un'altra vita, ora non mi ricordo come ...
    Il fatto è che usare tre id uguali è un errore a livello di markup, quindi occorre correggere a prescindere.

    Se vuoi risolvere senza id, rifacendoti solo all'attributo name, allora potresti fare così:

    codice:
    var inputs = document.getElementsByTagName('input')
    var radios = new Array()
    
    for (var i = 0; i < inputs.length; i++)
    {
       if ( inputs.item(i).getAttribute('type') == 'radio' && inputs.item(i).getAttribute('name') == 'modo_pagamento' )
       {
          radios.push(inputs.item(i))
       }
    }
    
    for (var i = 0; i < radios.length; i++)
    {
       alert(radios[i].value)
    }
    Funzionerà? Non ne ho la più pallida idea. L'ho inventato sul momento. Let me know.

    EDIT: Ho fatto una piccola prova e parrebbe di sì.

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    si può fare con l'antico mdo?

    document.nome_form.nome_radio[0]
    Pietro

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da pietro09
    si può fare con l'antico mdo?

    document.nome_form.nome_radio[0]
    Si`, ma non essendoci il name per il form, occore modificare:
    document.getElementById('ID_FORM').NOME_RADIO[0]
    document.getElementById('ID_FORM').NOME_RADIO[1]
    document.getElementById('ID_FORM').NOME_RADIO[2]
    oppure:
    document.getElementById('ID_FORM').elements('NOME_ RADIO')[0]

    nei campi di un form i name sono tuttora validi (e per i radio sono praticamente obbligatori)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Sì, però gli id non univoci sono peggio di una testata di Zidane
    Pietro

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.