Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Fondere 2 funzioni

  1. #1

    Fondere 2 funzioni

    Ciao ragazzi,

    con queste 2 funzioni seleziono e deseleziono tutti i CheckBox di un form.

    Vorrei fare in modo di usare un solo pulsante invece di 2 che con un click mi seleziona tutto e al secondo click deseleziona tutto.

    Non riesco a fondere le 2 funzioni: ottengo sempre qualche errore.

    Grazie in anticipo per l'aiuto.

    <script language="JavaScript">
    function Sel_All() {
    The_Form = "document.elimina"
    for (i=0;i< eval(The_Form+".length");i++){
    var field_name=eval(The_Form).elements[i].name;
    var field_type=eval(The_Form).elements[i].type;
    if (field_type=="checkbox"){
    var campo=eval(The_Form).elements[i].name;
    eval(The_Form+"."+campo+".checked=1");
    }
    }
    }

    function DE_Sel_All() {
    The_Form = "document.elimina"
    for (i=0;i< eval(The_Form+".length");i++){
    var field_name=eval(The_Form).elements[i].name;
    var field_type=eval(The_Form).elements[i].type;
    if (field_type=="checkbox"){
    var campo=eval(The_Form).elements[i].name;
    eval(The_Form+"."+campo+".checked=0");
    }
    }
    }
    </script>




  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ti conviene lascaire le funzioni cosi` come sono, e chiamarle a seconda di un paramentro.
    Tieni presente che le tue funzioni usano strumenti deprecati e poco efficienti (eval). Le riscrivo senza.

    codice:
    <script language="JavaScript">
    var selezionate = false;
    
    function Sel_All() {
      The_Form = document.elimina;
      for (var i=0; i<The_Form.length; i++){
        if (The_Form.elements[i].type == "checkbox"){
          The_Form.elements[i].checked = true;
        }
      }
      selezionate = true;
    }
    
    function DE_Sel_All() {
      The_Form = document.elimina;
      for (var i=0; i<The_Form.length; i++){
        if (The_Form.elements[i].type == "checkbox"){
          The_Form.elements[i].checked = false;
        }
      }
      selezionate = false;
    }
    </script>

    Il bottone dovra` essere:
    <input type="button" onClick="if(selezionate) Sel_All(); else DE_Sel_All();">

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ti ringrazio ma c'è qualcosa che non va al bottone. Non mi seleziona ne deseleziona i checkBox.

    In questo modo

    <input name="seleziona" type="button" id="seleziona" onClick="if (selezionate = true) Sel_All(); else (selezionate = false) DE_Sel_All();" value="seleziona">

    seleziona tutto ma al secondo click non deleziona.

    Cos'è che non va?


  4. #4

  5. #5
    usa un checkbox per selezionare e deselezionare

    <script>
    function selectAll() {
    var The_Form = document.forms["elimina"].elements;
    for(var i=0; i<The_Form.length; i++){
    if (The_Form[i].type == "checkbox"){
    The_Form[i].checked = The_Form.checkMadre.checked;
    }
    }
    }
    </script>

    <input type="checkbox" name="checkMadre" onclick="selectAll();">

    <input type="checkbox" name="c1">
    <input type="checkbox" name="c2">
    <input type="checkbox" name="c3">
    <input type="checkbox" name="c4">
    <input type="checkbox" name="c5">
    ...
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  6. #6
    Ti ringrazio per il tuo intervento Mackey...

    ma il tuo codice funziona se tutte le checkBox hanno lo stesso nome?

    Se non sbaglio lo avevi postato da qualche altra parte... l' ho provato dopo aver fatto una ricerca ma non funzionava...


  7. #7
    no... funziona anche se hanno nomi diversi!

    <script>
    function selectAll() {
    var The_Form = document.forms["elimina"].elements;
    for(var i=0; i<The_Form.length; i++){
    if (The_Form[i].type == "checkbox"){
    The_Form[i].checked = The_Form.checkMadre.checked;
    }
    }
    }
    </script>
    <form name="elimina">
    <input type="checkbox" name="checkMadre" onclick="selectAll();">

    <input type="checkbox" name="topolino">
    <input type="checkbox" name="pippo">
    <input type="checkbox" name="pluto">
    <input type="checkbox" name="orazio">
    <input type="checkbox" name="clarabella">
    </form>

    provalo così senza cambiare niente...
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  8. #8
    Grazie Mackey,

    funziona perfettamente... ma devo per forza usare il checkbox madre per selezionare tutte le altre check? Voglio dire non potrebbe esser un pulsante o meglio ancora un link testuale ad azionare la funzione?


  9. #9
    ok... vuoi che sia un link? ok

    <script>
    var selezionati = false;
    function selectAll() {
    selezionati = !selezionati;
    var The_Form = document.forms["elimina"].elements;
    for(var i=0; i<The_Form.length; i++){
    if (The_Form[i].type == "checkbox"){
    The_Form[i].checked = selezionati;
    }
    }
    }
    </script>
    <form name="elimina">
    select all

    <input type="checkbox" name="topolino">
    <input type="checkbox" name="pippo">
    <input type="checkbox" name="pluto">
    <input type="checkbox" name="orazio">
    <input type="checkbox" name="clarabella">
    </form>
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  10. #10
    Ti ringrazio Mackey... stavo usando 2 link per questa funzione... ora ne basta uno solo

    Bravo...

    Grazie anche Mich_

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.