Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    come controllare se almeno un checkbox di 18 e' selezionato ?

    ciao, io volevo controllare se uno dei 18 checkbox e' selezionato.

    infatti io ho un form e un utente deve scegliere per forza almeno uno dei checkbox per proseguire.

    pero' non mi funziona, innanzitutto mi da' errore quando dichiaro
    la variabile boolean...

    io ho fatto :

    codice:
    // funzione che mi controlla se uno dei 18 check e' spuntato
    // i check si chiamano chk1 , chk2, ...... chk18
    
    function campi_checkbox(theForm)
    {
    	boolean almeno_uno_selezionato;
    	almeno_uno_selezionato = true;
    	
    	var campo = "";
    	for(i=1; i++; i=18)
    	{
    		campo = "chk" + i;
    		
    		if(theForm.campo + ".checked)
    		{
    			almeno_uno_selezionato = true;
    		}
    		if i > 20
    		{
    			break;
    		}
    	}	
    
    return (almeno_uno_selezionato);
    }
    
    
    // funzione chiamata all'evento on_submit del form :
    
    function form1_onsubmit(theForm) {
    
    if ( !(campi_checkbox(theForm)) )
      {
      alert("Scegliere almeno uno dei 18 valori)");
      return (false);
      }

    grazie

    billy
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    prova così...
    codice:
    function campi_checkbox(theForm)
    {
    	boolean almeno_uno_selezionato;
    	almeno_uno_selezionato = true;
    	
    	var campo = "";
    	for(i=1; i++; i=18) 
    	{
    		campo = "chk" + i;
    		
    		if(theForm.getElementById(campo).checked == true)
    		{
    			almeno_uno_selezionato = true;
    		}
    		if i > 20
    		{
    			break;
    		}
    	}	
    
    return (almeno_uno_selezionato);
    }
    ps sei sicuro di questo for?
    for(i=1; i++; i=18)

    ciao

  3. #3
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    no

    ok provo ora.

    per il for... non e' giusta la sintassi ?

    poi va cambiato il punto :

    boolean almeno_uno_selezionato;
    almeno_uno_selezionato = true;

    in :

    boolean almeno_uno_selezionato;
    almeno_uno_selezionato = false;
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    per quanto riguarda il for ho sempre saputo che la sintassi è:
    for (assegnazione; condizione; incremento/decremento)
    ma magari è possibile utilizzare un altro tipo di sintassi...
    infatti la mia non era intesa come "è un errore", bensì chiedevo se ne eri sicuro dato che quel tipo di sintassi non l'avevo mai vista...pura curiosità...

  5. #5
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    si

    si anche io avevo viato il for come tu hai detto...

    poi ho trovato un help di javascript cosi'...

    boh, provo tutti e due i casi, in effetti il tuo e' quello che ho sempre creduto quello giusto
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    guarda...io avevo fatto una cosa del genere perchè dovevo controllare quali campi erano checkati per cambiargli la classe...
    Ho provato a ricreare la paginetta che avevo fatto,grosso modo è così (l'impostazione, non la grafica,nè tantomeno il contenuto della pagina ):

    codice:
    <html>
    <head>
    <script language="javascript">
    <!--
    function campi_checkbox()
    {
      alert(document.getElementById('test2').value);
      var ctr = false;
      var numCheck = 20;	
    	for(i=1; i<=numCheck; i++) 
    	{
    		campo = "chk" + i;		
    		if(document.getElementById(campo).checked == true)
    		{
                      var ctr = true;
                      //se ti serve sapere se almeno uno è checkato e non ti interessa nient'altro,appena trovi il primo,esci dal ciclo, evitando altri controlli */
                      break;
        }
    	}	
    	
    	if(ctr == false)
    	 alert('Devi fare almeno una scelta');
    
    return ctr;
    } 
    -->
    </script>
    </head>
    <body>
    <form method="post" action="mia_pagina.php" name="pippo">
    <?php
    for($i=1; $i<=20; $i++)
    {
    ?>
      <input type="checkbox" name="chk<?=$i; ?>" id="chk<?=$i; ?>"><?=$i;?> 
    
    <?php
    }
    ?>
    <input type="submit" name="invia" value="Invia" onclick="return campi_checkbox()">
    </form>
    </body>
    </html>
    poi quando controllerai la funzione farai , ad esempio,
    onclick="return campi_checkbox(document.nomeForm)"...

    Sxo di esserti stato d'aiuto in qualche modo...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.