Visualizzazione dei risultati da 1 a 9 su 9

Discussione: focus su radio button

  1. #1

    focus su radio button

    Ciao a tutti...
    in una form ho inserito questo script per controllare se è stato selezionato il sesso (M o F):

    var f=document.forms['15minuti'];
    collElements = document.getElementsByName("Sesso")
    almenouno = false
    for (i = 0; i < collElements.length; i++) {
    if (collElements[i].checked){
    almenouno = true
    }
    }
    if (!almenouno){
    alert("ATTENZIONE: Non hai selezionato il sesso!")
    // f.Sesso.focus();
    return false
    }

    questo fa si che se non è stato selezionato nulla visualizza l'alert, poi la riga che adesso è commentata dovrebbe far si che "Sesso" vada in focus... ma non lo fa!!!
    Qualcuno sa dirmi come posso fare??
    Grazie.
    Chi Non RisiKa noN RosiKa

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    IO non userei il getElementByTagName, ma il nome del campo:

    <input type="radio" name="Sesso" value="m"> m

    <input type="radio" name="Sesso" value="f"> f


    var f=document.forms['15minuti'];
    collElements = f.Sesso;
    almenouno = false
    for (i = 0; i < collElements.length; i++) {
    if (collElements[i].checked){
    almenouno = true
    }
    }
    if (!almenouno){
    alert("ATTENZIONE: Non hai selezionato il sesso!")
    f.Sesso.focus();
    return false
    }

    Nota l'uso del name nel tag HTML.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    ho fatto la modifica che mi hai indicato, il funzionamento resta uguale: se non ho selezionato nulla mi appare l'alert, ma invece di fare f.Sesso.focus(), quando do l'ok, invia comunque la form...!
    che faccio?
    Chi Non RisiKa noN RosiKa

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Quello non lo avevi detto.

    La chiamata deve essere:
    <form ... onsubmit="return nomefunzione();">

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    ho controllato e la chiamata è corretta:

    onSubmit="return check15m();"
    Chi Non RisiKa noN RosiKa

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Forse il focus non lo fa perche` anche li' manca il [0], ma il form non dovrebbe venir spedito.

    Prova a scrivere il link alla pagina (se pubblicata e non coperta da copyright) oppure posta il codice del form e tutta la funzione.

    if (!almenouno){
    alert("ATTENZIONE: Non hai selezionato il sesso!")
    f.Sesso[0].focus();
    return false;
    }
    else return true;
    }

    Vedi anche le piccole modifiche che ho fatto ora.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Fatta!
    adesso sembra funzionare correttamente...

    aprofitto della tua disponibilità per chiederti un'altra cosetta:

    alla fine del form ho un altro radio button per l'accettazione del trattamento dei dati personali, devo fare in modo che se è selezionato "NO" non parta, se invece è selezionato "SI" parta... però con questo script controllo solo se è checked o meno, come posso quindi controllarne il valore?

    rigrazie..!
    Chi Non RisiKa noN RosiKa

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Con i radio si puo` solo testare se sono checked o meno. Pre il value, occorre comunque prima testare quale e` checked

    Pero` i radio devono essere sempre almeno due, per cui devi procedere allo stesso modo:

    <input type="radio" name="accetta" value="si" checked="true">si &amp;nbsp;
    <input type="radio" name="accetta" value="no">no



    var acce = document.NOMEFORM.NOMERADIO
    if(acce[1].checked) {
    alert("non posso proseguire se non accetti le condizioni")
    return false;
    } else return true;

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    perfetto... una bomba!!!
    grazie 1000!!!

    :mavieni:
    Chi Non RisiKa noN RosiKa

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.