Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    79

    Implementare una function

    Salve a tutti, sto cercando aiuto per implemetare questa funzione che svolge un checkbox, per almeno uno selezionato attiva il tasto di registra e di annulla altrimenti attiva il tasto invia.
    Dovrei conteggiare il numero dei checkbox selezionati ed emetterlo a video.
    codice:
    function ControlloSubmit(cc){
                                        var almenouno=false;
                                        var ff=cc.form;
                                        var ccx=ff.elements[cc.name];
                                        if(ccx.length){
                                            for(var i=0;i<ccx.length;i++)
                                                    if(ccx[i].checked)almenouno=true
                                                            }else if(ccx.checked)almenouno=true
                                                                    if(almenouno){  
                                                                                    ff.invia.disabled=true;
                                                                                    ff.registra.disabled=false;
                                                                                    ff.annulla.disabled=false;
                                                                                    }
                                                                                    else{
                                                                                        ff.invia.disabled=false;
                                                                                        ff.registra.disabled=true;
                                                                                        ff.annulla.disabled=true;
                                                                                        }
                }
    Inoltre sarei grato se qualcuno potesse spiegarmi il concetto dell'esistenza della
    codice:
      }else if(ccx.checked)almenouno=true
    perche io non ci sono riuscito, oppure e' qualcosa che in questa funzione non serve???

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: Implementare una function

    e' indentata in maniera confusionaria
    Codice PHP:
    // da richiamare con <input type="checkbox" name="nomeCheckbox" onclick="ControlloSubmit(this)">
    function ControlloSubmit(cc){ 
      
    // variabile di controllo
      
    var almenouno=false;
      
    // riferimento al form
      
    var ff=cc.form;
      
    // riferimento agli elementi che condividono lo stesso nome del checkbox cliccato
      
    var ccx=ff.elements[cc.name];
      
    // se ha lunghezza si tratta di un array, quindi piu' di un elemento condivide lo stesso name
      
    if(ccx.length){
        
    // cicla per la lunghezza di questo array, setta la var di controllo a true se almeno uno e' segnato
        
    for(var i=0;i<ccx.length;i++) if(ccx[i].checked)almenouno=true
      
    }
      
    // se non ha lunghezza un solo elemento ha quel nome
      // e verifica che sia segnato
      
    else if(ccx.checked)almenouno=true

      
    // da qui in base alla variabile di controllo decidi quello che devi fare
      // se almeno uno e' segnato
      
    if(almenouno){
        
    // disabilita invia, abilita registra e annulla
        
    ff.invia.disabled=true;
        
    ff.registra.disabled=false;
        
    ff.annulla.disabled=false;
      }
      
    // altrimenti
      
    else {
        
    // abilita invai, disabilita registra e annulla
        
    ff.invia.disabled=false;
        
    ff.registra.disabled=true;
        
    ff.annulla.disabled=true;
      }


    per contare quanti ne sono segnati
    Codice PHP:
    function ControlloSubmit(cc){ 
      var 
    almenouno=0;
      var 
    ff=cc.form;
      var 
    ccx=ff.elements[cc.name];
      if(
    ccx.length){
        for(var 
    i=0;i<ccx.length;i++) if(ccx[i].checkedalmenouno++
      }
      else if(
    ccx.checked)almenouno++

    // "emetterlo a video", come? 
    // in un campo del form?
    // ff.nomeElemento.value=almenouno;
    // scriverlo all' interno di un elemento con un id="totaleSegnati"?
    // document.getElementById('totaleSegnati').innerHTML=almenouno; 
    il resto e' come sopra




    Inoltre sarei grato se qualcuno potesse spiegarmi il concetto dell'esistenza della
    codice:
      }else if(ccx.checked)almenouno=true
    perche io non ci sono riuscito, oppure e' qualcosa che in questa funzione non serve???
    se sei certo di avere sempre piu' di un checkbox non ti serve (fara' sempre parte di un array di elementi)

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    79
    Grazie xinod per l'esauriente spiegazione, posso chiderti ancora una cosa, dopo aver copiato il tuo script, per emetterlo ha video ho utilizzato un metodo non molto elegante, hai una soluzione anche per questo.
    codice:
     ff.totaleSegnati.value=nrselez;
    
    <input type="text" name="totaleSegnati" value="" size=10 disabled>
    Vorrei che il valore totaliSegnati si visualizzi solo se maggiore di zero



    Grazie

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.