Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692

    Validazione checkbox fallisce

    Ciao.

    Perchè questo codice non funziona e fa partire il form anche quando nessuno dei checkbox è selezionato?

    Cosa sbaglio?

    codice:
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
     
        <script language="javascript" type="text/javascript">
    // <!CDATA[
     
    function Button1_onclick() 
    {
        if (!controllo_check())
        {
            //se non seleziono almeno un elemento, avviso e uscita
            alert("Devi selezionare almeno un elemento");
            return;
        }
        //altrimenti altra azione, per esempio submit
        document.forms[0].submit();
     
    }
     
     
    function controllo_check()
    {
        var cks = document.forms[0].chkParent;
        var checked = false;
        for(var i = 0; i < cks.length; i++)
        {
            if(cks[i].checked)
            {
                checked = true;
                break;
            }
        }
        return checked; 
     
    }
     
     
    // ]]>
        </script>
     
    </HEAD>
    <title>Multiple checkbox select sample</title>
    <BODY>
     
     
     
    <form name=frmTest action="default-2.asp" method=POST onsubmit="return(Button1_onclick(this));" >
     
    <input type=CHECKBOX name=chkParent1 value="3742">karla_c26
    
     
    <input type=CHECKBOX name=chkParent2 value="4430">AleAlvarez
    
     
    <input type=CHECKBOX name=chkParent3 value="3303">Alejandra
    
     
    <input type=CHECKBOX name=chkParent4 value="3720">Angio
    
     
    <input type=CHECKBOX name=chkParent5 value="3">gino
    
     
    <input type=CHECKBOX name=chkParent6 value="4606">Andrea
    
     
    <input type=CHECKBOX name=chkParent7 value="3962">alx
    
     
    <input type=CHECKBOX name=chkParent8 value="4095">ANGELADAUTO
    
     
    <input type=CHECKBOX name=chkParent9 value="7">cas
    
     
    <input type=CHECKBOX name=chkParent10 value="8">assim
    
     
    <input type=HIDDEN name=txtCount value="10">
    
    
    <input type=SUBMIT value="Select"></p>
    </form>
    </BODY>
    </HTML>
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non e' che assegnando name con numerazione progressiva si ottenga di creare magicamente una collezione/array di checkbox richiamabile con una porzione del nome...

    Scorri la collezione degli elements del form verificando il loro name ed il type per individuare cio' che ti serve e riscrivi il controllo.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da br1
    Non e' che assegnando name con numerazione progressiva si ottenga di creare magicamente una collezione/array di checkbox richiamabile con una porzione del nome...

    Scorri la collezione degli elements del form verificando il loro name ed il type per individuare cio' che ti serve e riscrivi il controllo.

    ciao
    Grazie per il suggerimento, ho fatto così ma continua a validare il form anche se non viene selezionato nesun checkbox...

    codice:
     
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
     
        <script language="javascript" type="text/javascript">
    // <!CDATA[
     
    function Button1_onclick() 
    {
     
    var total = ""
     
    for(var i=0; i < document.frmTest.chkParent.length; i++)
     
    {
    if(document.frmTest.chkParent[i].checked)
    total +=document.frmTest.chkParent[i].value + "\n"
    }
     
    if(total == "")
    alert("ko!");
     
    return false; 
     
    }
     
    // ]]>
        </script>
     
    </HEAD>
    <title>Multiple checkbox select sample</title>
    <BODY>
     
     
     
    <form name=frmTest action="default-2.asp" method=POST onsubmit="return(Button1_onclick(this));" >
     
    <input type=CHECKBOX name=chkParent1 value="3742">karla_c26
    
     
    <input type=CHECKBOX name=chkParent2 value="4430">AleAlvarez
    
     
    <input type=CHECKBOX name=chkParent3 value="3303">Alejandra
    
     
    <input type=CHECKBOX name=chkParent4 value="3720">Angio
    
     
    <input type=CHECKBOX name=chkParent5 value="3">gino
    
     
    <input type=CHECKBOX name=chkParent6 value="4606">Andrea
    
     
    <input type=CHECKBOX name=chkParent7 value="3962">alx
    
     
    <input type=CHECKBOX name=chkParent8 value="4095">ANGELADAUTO
    
     
    <input type=CHECKBOX name=chkParent9 value="7">chinga cas
    
     
    <input type=CHECKBOX name=chkParent10 value="8">assim
    
     
    <input type=HIDDEN name=txtCount value="10">
     
    
    
    <input type=SUBMIT value="Select"></p>
    </form>
    </BODY>
    </HTML>
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ok, lo so, il mio italiano fa schifo ma tu non ci hai messo un briciolo di impegno per interpretare quanto ti ho detto
    codice:
    for(var i=0; i < document.frmTest.elements.length; i++)
    {
       el = document.frmTest.elements[i]
       if (el.name.substr(0,9)=="chkParent")
    Il resto scrivilo consultando un manuale...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da br1
    Ok, lo so, il mio italiano fa schifo ma tu non ci hai messo un briciolo di impegno per interpretare quanto ti ho detto
    codice:
    for(var i=0; i < document.frmTest.elements.length; i++)
    {
       el = document.frmTest.elements[i]
       if (el.name.substr(0,9)=="chkParent")
    Il resto scrivilo consultando un manuale...
    L'impegno è proporzionale alle proprie conoscenza... cmq ti sei spiegato benissimo ed hai utilizzato un italiano appropriato al caso... il problema sono io che non essendo un "masticatore" di javascript non sono capace di farlo funzionare a dovere... infatti:



    codice:
        <script language="javascript" type="text/javascript">
     
      function checkForm(form)
      {
      
       for(var i=0; i < document.frmTest.elements.length; i++)
       {
       el = document.frmTest.elements[i]
       if (el.name.substr(0,9)=="chkParent")  
          
       if(document.frmTest.elements.length < 0) 
       {
          alert("ko");      
        }
        
        }
        
        return false;
      }
    
    
        </script>
     
    </HEAD>
    <title>Multiple checkbox select sample</title>
    <BODY>
     
     
     
    <form name=frmTest action="" method=POST onsubmit="return checkForm(this);">
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

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.