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

    Controllo ciclico di radio button

    Salve,
    scusate se posto perché l'argomento è roba vecchia, ma prima di farlo ho passato un bel po' di tempo a cercare (per esempio qui) e a provare numerose combinazioni.

    Ho un form con n bottoni radio:
    codice:
    <FORM NAME="actions_find" ACTION="action_view.php" METHOD="POST" onSubmit="return check_form();">
    <INPUT TYPE="RADIO" NAME="action_id" VALUE="1">
    <INPUT TYPE="RADIO" NAME="action_id" VALUE="2"> 
    <INPUT TYPE="SUBMIT" VALUE="Visualizza">
    </FORM>
    in cui deve essere inviato il submit solo se almeno un bottone è selezionato. A tal proposito ho creato un semplicissimo controllo JS:
    codice:
    <SCRIPT Language="Javascript" TYPE="text/javascript"> 
    <!-- 
    function check_form() {
    var count = 0;
    for (i=0; i<=10; i++) { if (document.actions_find.action_id[i].checked == true) { count++; } } 
    if (count <= 0) { alert('Deve essere selezionata almeno un\'azione da visualizzare.'); 
    return false; } else { return true; } 
    }
    //-->
    </SCRIPT>
    che non lavora perché non blocca il submit.
    Il JS debugger di Firefox dice:
    document.actions_find.action_id[i] has no properties.
    Ma non riesco a capire, perché quell'oggetto ce la dovrebbe proprio avere la proprietà checked...
    E' come se non leggesse la variabile i all'interno del ciclo for.
    Ho provato anche a mettere for (var i=0; i<=10; i++) ma non funziona ugualmente.
    Ho provato anche a sostituire
    codice:
    document.actions_find.action_id[i].checked
    con il più moderno
    codice:
    document.getElementByName('action_id')[i].checked
    (senza essere sicuro della validità) ma senza risultati.
    Scommetto che come sempre è una inezia che mi blocca il flusso di zeri e uno nel supercervellone (?) del PC.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  2. #2

    Sottolineo

    Ovviamente nell'alert il quote è backslashato...
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  3. #3

    Risolto

    Il fatto è che avevo 10 elementi ma ne scorrevo 11.

    Non credevo che Javascript inibisse l'esecuzione dello script intero a causa del controllo della presenza degli elementi di una matrice!

    Pensavo solo che avrebbe restituito "false" alla chiamata di un elemento inesistente.

    QUINDI lo script funziona.
    Ciao e grazie.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

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.