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

    [Javascript] Controllare un numero arbitrario di checkbox

    Salve a tutti

    Ho un numero arbitrario di checkbox (sono inserite dinamicamente tramite un interrogazione ad un db.

    Prima del submit del form devo controllare che almeno una sia selezionata. Come si può fare una cosa del genere ?

    Allego il codice per maggiore completezza... praticamente devo completare la funzione type_check.

    Grazie !!
    Codice PHP:
    <?php
    $_SESSION
    ['visualizza_pulsanti_sotto'] = "false";

    require_once(
    "include/mysqlclass.inc");

    $mydb = new database();

    ?>
     <script type="text/javascript">
      
      function type_check() {

        
        

      }
      
      </script>

    <div class="selettore_wt">
    <h2>Selezionare uno o pi&ugrave tipi di chat tra quelli presenti</h2>



        <form name="formTipo" action="<?php echo $PHP_SELF?>" method="POST" onsubmit="return type_check()">

        <?php
        $query 
    "SELECT id_directory,descrizione FROM directory WHERE analizzare='YES'";
        
    $mydb->setQuery($query);
        
    $records $mydb -> loadObjectList();
        foreach (
    $records as $record){
            
    //echo "<option value=\"$record->id_directory\"";
            //echo ">$record->descrizione";
            
    echo "<input type=\"checkbox\" name=\"$record->id_directory\" checked=\"checked\">$record->descrizione

    "
    ;
        }
        
    ?>
        </select>
        

    </p>
        <input name="annulla" type="submit" value="Annulla">
        <input name="memorizza" type="submit" value="Fatto" onclick="flag=1">
        </form>
    </div>

  2. #2
    Potresti inserire un id al tuo form (lo stesso valore di name, se vuoi, giusto per capirci) e poi scrivere questa funzione:

    codice:
    window.onload = function()
    {
       var modulo = document.getElementById('formTipo')
       var inputs = modulo.getElementsByTagName('input')
       var checkboxes = new Array()
          for (var i = 0; i < inputs.length; i++)
          {
             if ( inputs.item(i).getAttribute('type') == 'checkbox' )
             {
                checkboxes.push(inputs.item(i))
             }
          }
    
       function type_check()
       {
          var controllo = false
          
          for (var i = 0; i < checkboxes.length; i++)
          {
             if ( checkboxes[&#105;].checked )
             {
                controllo = true
                break
             }
          }
    
          if ( controllo )
          {
             alert('Ok!')
          }
          else
          {
             alert('Selezionare almeno una checkbox.')
          }
       }
    }
    Prova e facci sapere.

  3. #3
    ho risolto con molte meno righe di codice in questo modo

    codice:
     <script type="text/javascript">
      
      function type_check(f) {
     	var e = f.elements;
     	if (flag == 1) {
     	for( i=0; i < e.length; i++) 
     		if( e[i].type=='checkbox' && e[i].checked ) return true;
     	alert("Selezionare almeno una voce.");
     	return false;
     	}
    	
      }
      
      </script>
    e nel form

    <form name="formTipo" action="<?php echo $PHP_SELF; ?>" method="POST" onsubmit="return type_check(this)">

    Grazie per l'aiuto !

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.