Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030

    [JS] limite ai checkbox

    giorno

    so che l'argomento è stato trattato più volte, ma sto cercando da ore e non trovo una risposta a quello che cerco...

    ho una serie infinita di possibili checkbox, ma voglio limitarne la scelta a 5.

    usando questo JS trovato non mi ricordo in quale thread
    codice:
    <script language="javascript"> 
    var conto=0;
    function conta(quale){
      conto+=(quale.checked)?1:-1;
      if(conto>5){
         alert("Puoi scegliere al massimo 5 possibilità");
      }
    }
    </script>
    e al check onclick="conta(this)"
    effivamente al sesto premuto esce l'alert... ma intanto lo segna comunque... e così il settimo, l'ottavo etc..

    come faccio a dirgli che dopo 5 "checkati" non deve checkarne più e far uscire l'alert?


    grazie
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  2. #2
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    e uppalla
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    questa potrebbe essere una soluzione verifica quante checkbox solo state selezionate se superiore a 5 non via il form vedi se puo andarti bene.
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>DWS - Javascript</title>
    <script language="javascript"> 
    function contacheckbox(){
    conta = 0;
    var cc1 = document.form1.scelta;
    for(var i=0; i<cc1.length; i++) {
    if(cc1[i].type=='checkbox' && cc1[i].checked) {
    conta++;
    if(conta>5){
    alert("hai Selezionato troppe opzioni "+conta+" il massimo consentito e 5");
    return false;
    }
    }
    }
    }
    </script>
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_reloadPage(init) {  //reloads the window if Nav4 resized
      if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
        document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
      else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
    }
    MM_reloadPage(true);
    //-->
    </script>
    </head>
    <body>
    <form name="form1" method="post" action="" onSubmit="return contacheckbox();">
      <table width="437" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="80"></td>
          <td width="357"><table width="328" border="0" cellspacing="2" cellpadding="0">
            <tr>
              <td><input type="checkbox" name="scelta" value="checkbox"></td>
            </tr>
            <tr>
              <td><input type="checkbox" name="scelta" value="checkbox"></td>
            </tr>
            <tr>
              <td><input type="checkbox" name="scelta" value="checkbox"></td>
            </tr>
            <tr>
              <td><input type="checkbox" name="scelta" value="checkbox"></td>
            </tr>
            <tr>
              <td><input type="checkbox" name="scelta" value="checkbox">            </td>
            </tr>
            <tr>
              <td><input type="checkbox" name="scelta" value="checkbox"></td>
            </tr>
          </table>
          <input type="submit" name="Submit" value="Submit"></td>
        </tr>
      </table>
    </form>
    </body>
    </html>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    Senza stravolgere tutto dovrebbe bastare aggiungere una riga alla tua funzione, non l'ho provato ma dovrebbe andare. Ciao ciao.
    codice:
    <script language="javascript"> 
    var conto=0;
    function conta(quale){
      conto+=(quale.checked)?1:-1;
      if(conto>5){
         quale.checked = false;
         alert("Puoi scegliere al massimo 5 possibilità");
      }
    }
    </script>
    No pvt per sollecitare risposte, grazie.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    Dimenticavo che devi anche decrementare il contatore visto che alla fine l'ultimo e' come se non l'avessi selezionato.
    codice:
    <script language="javascript"> 
    var conto=0;
    function conta(quale){
      conto+=(quale.checked)?1:-1;
      if(conto>5){
         quale.checked = false;
         conto--;
         alert("Puoi scegliere al massimo 5 possibilità");
      }
    }
    </script>
    No pvt per sollecitare risposte, grazie.

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da afurly
    Dimenticavo che devi anche decrementare il contatore visto che alla fine l'ultimo e' come se non l'avessi selezionato.
    codice:
    <script language="javascript"> 
    var conto=0;
    function conta(quale){
      conto+=(quale.checked)?1:-1;
      if(conto>5){
         quale.checked = false;
         conto--;
         alert("Puoi scegliere al massimo 5 possibilità");
      }
    }
    </script>
    A questa soluzione cero arrivato anch'io solo che non verificando al momento dell'invio del form quanti checkebox sono suntati potrebbe dare degli errori.
    Se questo particolare a darkiko non interessa e sicuramente + veloce la tua soluzione.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    Originariamente inviato da cavicchiandrea
    A questa soluzione cero arrivato anch'io solo che non verificando al momento dell'invio del form quanti checkebox sono suntati potrebbe dare degli errori.
    Se questo particolare a darkiko non interessa e sicuramente + veloce la tua soluzione.
    Ma se io non permetto di selezionarne piu' di 5 con quella funzione..... al momento dell'invio ce ne saranno per forza al massimo 5 selezionati... o mi sfugge qualche particolare?

    ciao ciao
    No pvt per sollecitare risposte, grazie.

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da afurly
    Ma se io non permetto di selezionarne piu' di 5 con quella funzione..... al momento dell'invio ce ne saranno per forza al massimo 5 selezionati... o mi sfugge qualche particolare?

    ciao ciao
    *Ti faccio un esempio pratico riscontrato con firefox se spunto 5 checkbox su 10 poi invio il form (ma x qualche errore l'operazione non va buon fine) tornando al form le checkbox rimangono spuntare ma non vengono + conteggiate e ne puoi spunare altre 5.
    E una possibilità diffcile che accada, ma visto che il mio esempio verifica le checkbox spuntate è sicuramente + corretto, poi sarà a darkiko decidere quale dei due script utilizzare.
    Al quale chiedo scusa x [OT]*[/OT]

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    Ok, ho capito.... condivido l'idea di controllare il form anche prima dell'invio.... era solo per capire come potesse accadere di avere piu' checkbox del previsto spuntate.

    Ciao ciao
    No pvt per sollecitare risposte, grazie.

  10. #10
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    ehilà signori
    davvero grazie 1000 ad entrambi per l'aiuto!

    probabilmente ora che sono in fase di avvio utilizzerò il metodo suggeritomi da afurly, che soddisfa benone la mia richiesta; appena avrò un attimo per approfondire mi guarderò bene il suggerimento di Andrea così da evitare possibili "errori".

    Ancora davvero grazie ragazzi
    è nella nostra unicità che risiede la meraviglia degli esseri umani

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.