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

    Checkbox alternate con lo stesso name

    Salve a tutti ho poca dimestichezza con js quindi vi chiedo se potete aiutarmi a risolvere questo problemino.

    Ho scaricato da questo sito questo scipt che alterna la selezione di due checkbox:


    codice:
    <script type="text/javascript" language="JavaScript">
    <!--
    function toggleIt(elm,name1,name2){
    	if (elm.name == name1){
    		if (elm.checked) elm.form[name2].checked = false;
    		else elm.form[name2].checked = true;
    	}
    	else if (elm.name == name2){
    		if (elm.checked) elm.form[name1].checked = false;
    		else elm.form[name2].checked = true;
    	}
    }
    //-->
    </script>
    poi l'html

    codice:
    <form>
    Check 1 <input type="checkbox" name="on" onClick="toggleIt(this,'on','off')" checked />
    Check 2 <input type="checkbox" name="off" onClick="toggleIt(this,'off','on')" />
    </form>
    Lo script funziona bene ma, nel mio caso, ha un problema non valuta l'ipotesi che le due checkbox abbiano lo stesso name.
    Siccome non conosco quasi per niente la sintassi di js... qualcuno potrebbe aiutarmi ad adattarlo per un form che abbia due checkbox con lo stasso name.

    Grazie a tutti.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se sai che sono due e saranno sempre due, puoi fare cosi'
    codice:
    function toggleIt(elm){
    	var arr=elm.form.elements[elm.name];
    	for(var k=0;k<arr.length;k++){
    		if(arr[k]!=elm){arr[k].checked=!elm.checked;}
    	}
    }
    <form>
    Check 1 <input type="checkbox" name="on" onClick="toggleIt(this)" checked />
    Check 2 <input type="checkbox" name="on" onClick="toggleIt(this)" />
    </form>

    se possono essere in numero imprecisato (ma sempre piu' di uno) e vuoi che solo uno possa essere spuntato
    codice:
    function toggleIt(elm){
    	var arr=elm.form.elements[elm.name];
    	for(var k=0;k<arr.length;k++){
    		if(arr[k]!=elm && elm.checked){arr[k].checked=!elm.checked;}
    	}
    }
    <form>
    Check 1 <input type="checkbox" name="on" onClick="toggleIt(this)" checked />
    Check 2 <input type="checkbox" name="on" onClick="toggleIt(this)" />
    Check 3 <input type="checkbox" name="on" onClick="toggleIt(this)" />
    Check 4 <input type="checkbox" name="on" onClick="toggleIt(this)" />
    </form>

    ciao

  3. #3
    Grandissimo!!! Funziona perfettamente !!!

    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.