Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Checked

  1. #1

    Checked

    Salve ho un form :

    codice:
     <label><input  class="checkb" type="checkbox" name="italiano" value="1" onchange="check_lingue(this)" <?php if($risimage['italiano']==1) echo "checked"; ?>/>
          Italiano</label>
          <label><input class="checkb" type="checkbox" name="english" value="1" onchange="check_lingue(this)" <?php if($risimage['english']==1) echo "checked"; ?>/>
         English  </label>
          <label><input class="checkb" type="checkbox" name="spanish" value="1" onchange="check_lingue(this)" <?php if($risimage['spanish']==1) echo "checked"; ?>/>
          Spanish</label>
          <p>
      </div>
      <div class="col-md-3 bordo-destra text-left">
    
    
    		<label>  <input class="checkb" type="checkbox" name="french" value="1" onchange="check_lingue(this)" <?php if($risimage['french']==1) echo "checked"; ?>/>
          French</label>
          <label> <input class="checkb" type="checkbox" name="german" value="1" onchange="check_lingue(this)" <?php if($risimage['german']==1) echo "checked"; ?>/>
          German</label>
         <label> <input class="checkb" type="checkbox" name="russian" value="1" onchange="check_lingue(this)" <?php if($risimage['russian']==1) echo "checked"; ?>/>
          Russian</label>
    
    
      </div>
    
    
      <div class="col-md-3 bordo-destra text-left">
    
    
    	  <label><input class="checkb" type="checkbox" name="japanese" value="1" onchange="check_lingue(this)"<?php if($risimage['japanese']==1) echo "checked"; ?>/>
          Japanese</label>
         <label> <input class="checkb" type="checkbox" name="portuguese" value="1" onchange="check_lingue(this)" <?php if($risimage['portuguese']==1) echo "checked"; ?>/>
          Portuguese</label>
         <label> <input class="checkb" type="checkbox" name="arabic" value="1" onchange="check_lingue(this)" <?php if($risimage['arabic']==1) echo "checked"; ?>/>
          Arabic</label>
    
    
      
    
    
         <label> <input class="checkb" type="checkbox" name="mandarin" value="1" onchange="check_lingue(this)" <?php if($risimage['mandarin']==1) echo "checked"; ?>/>
          Mandarin</label>

    ho creato questa funzione che controlla all'iinizio quanti campi sono checked :


    codice:
    function checklingueinizio(elemento){
        if('document.form_edit_host.'+elemento+'.checked'){
    		    quanti += 1;
    
    
        }
        
        if(quanti==0){
    		 	document.getElementById('lingue1').innerHTML = '<img src="img/no.png"> Seleziona almeno una lingua';
    			
    		}
    		else{
    			
    		   	document.getElementById('lingue1').innerHTML = '<img src="img/si.png">';
    			
    					
    		}
    }
    ho inoltre questa che modifica il numero totale :

    codice:
    function check_lingue(elemento){
            
    		if(elemento.checked){
    		    quanti += 1;
    
    
    		}
    		else{
    	    	quanti -= 1;
    		}
            alert('quanti ='+quanti);
    		
    		if(quanti==0){
    		 	document.getElementById('lingue1').innerHTML = '<img src="img/no.png"> Seleziona almeno una lingua';
    			
    		}
    		else{
    			
    		   	document.getElementById('lingue1').innerHTML = '<img src="img/si.png">';
    			
    					
    		}
    		
    		 check_allok();
            
      
    }
    all'onload eseguo :

    codice:
     checklingueinizio('italiano');    
        checklingueinizio('english');
        checklingueinizio('spanish');
        checklingueinizio('french');
        checklingueinizio('german');
        checklingueinizio('russian');    
        checklingueinizio('japanese');
        checklingueinizio('portuguese');
        checklingueinizio('arabic');
        checklingueinizio('mandarin');

    Il problema è che al caricamento sembra le veda tutte checked anche se solo alcune lo sono ....

  2. #2
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    suggerimento...scritto al volo ...provalo

    prima prelevo l'oggetto form poi estraggo gli elementi checkbox da tutti gli elementi
    del form
    poi conto quelli checked


    function ContaCheckBox(formname) {
    var conta=0;
    var x=document.getElementById(formname);
    for (var i=0;i<x.length;i++) {
    if (x.elements[i].type=="checkbox") {
    if (x.elements[i].checked) {
    conta = conta + 1;
    }
    }
    }
    return conta;
    }
    utilizzo...
    alert("n.elementi checkbox presenti e ceccati="+ContaCheckBox("form_edit_host");
    ...
    ciao
    Vic53

  3. #3
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    ps
    una cosa ...non so cosa devi farci con il contatore di cechebox...
    magari scrivi piu dettagli su cosa ti serve...
    .. ciao
    Vic53

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, non capisco bene la logica di funzionamento che stai usando. Lo script mi pare confuso e ridondante. Non mi è chiaro cosa vuoi ottenere esattamente ma da quel che vedo ho l'impressione che quello da te indicato non sia l'unico problema.

    Ti è già stato dato un suggerimento da vic53 ed ovviamente, se chiarisci meglio cosa vuoi ottenere esattamente, sarà possibile valutare delle soluzioni maggiormente mirate.

    Ad ogni modo mi limito nel rispondere alla tua richiesta.
    La causa del problema sta in questa riga:
    codice:
    if('document.form_edit_host.'+elemento+'.checked'){
    Questa condizione sarà sempre vera perché stai indicando una stringa come argomento della condizione. Per JavaScript, in linea di massima, il risultato booleano di una qualsiasi stringa (non vuota) è sempre true.

    Presumo che la tua intenzione non sia quella di passare una stringa ma bensì un riferimento (creato dinamicamente) ad un particolare elemento del DOM.
    In questo caso puoi scrivere una roba del genere:
    codice:
    if(document.form_edit_host[elemento].checked){
    Chiaramente funzionerà a patto che document.form_edit_host esista realmente sul DOM e che questo contenga gli elementi nominati secondo il valore della variabile elemento. Cioè deve essere presente un form con name=form_edit_host e con i relativi elementi al suo interno.

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.