Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Contare quanto checkbox sono attivi

    Ciao.

    In un form composto da 6 checkbox (a coppie di due, la seleziona di una esclude l'altra corrispondente) è possibile contare quanti checkbox sono stati selezionati e se superiori ad uno bloccare l'invio del form stesso?

    <input type="checkbox" id="PD92" name="PD92" value="Si" onClick="if(this.checked){document.getElementById( 'PD12').disabled=true;document.getElementById('PD1 2').checked=false}else{document.getElementById('PD 12').disabled=false}">

    <input type="checkbox" id="PD93" name="PD93" value="Si" onClick="if(this.checked){document.getElementById( 'PD13').disabled=true;document.getElementById('PD1 3').checked=false}else{document.getElementById('PD 13').disabled=false}">


    <input type="checkbox" id="PD95" name="PD95" value="Si" onClick="if(this.checked){document.getElementById( 'PD15').disabled=true;document.getElementById('PD1 5').checked=false}else{document.getElementById('PD 15').disabled=false}">


    <input type="checkbox" id="PD12" name="PD12" value="Si" onClick="if(this.checked){document.getElementById( 'PD92').disabled=true;document.getElementById('PD9 2').checked=false}else{document.getElementById('PD 92').disabled=false}">


    <input type="checkbox" id="PD13" name="PD13" value="Si" onClick="if(this.checked){document.getElementById( 'PD93').disabled=true;document.getElementById('PD9 3').checked=false}else{document.getElementById('PD 93').disabled=false}">


    <input type="checkbox" id="PD15" name="PD15" value="Si" onClick="if(this.checked){document.getElementById( 'PD95').disabled=true;document.getElementById('PD9 5').checked=false}else{document.getElementById('PD 95').disabled=false}">

  2. #2
    Posso farti una domanda? Non ti pare che tutto quel javascript, innestato dentro il markup, crei troppa confusione? Voglio dire, di solito occorre che anche ad occhio, guardando il codice, esso sia ordinato e leggibile. Altrimenti potrebbe essere sintomo di progettazione disordinata.

    Forse non sai che è possibile gestire gli eventi onclick - ad esempio - direttamente dallo script, senza andare ad inquinare e ad appesantire così tanto l'HTML. Questo articolo potrebbe aiutarti a chiarire le idee in merito: http://icant.co.uk/articles/from-dht...scripting.html .

    Comunque, per fare quello che desideri, questa è una delle strade possibili:

    codice:
    var inputs = document.getElementsByTagName('input')
    var checkboxes = new Array()
    var contatore = 0
    
    for (var i = 0; i < inputs.length; i++)
    {
       if ( inputs.item(i).getAttribute('type') == 'checkbox' )
       {
          checkboxes.push(inputs.item(i))
       }
    }
    for (var i = 0; i < checkboxes.length; i++)
    {
       if ( checkboxes[i].checked )
       {
          contatore++
       }
    }
    
    if ( contatore == 1 )
    {
       // Invia form.
    }
    else
    {
       // Avvisa l'utente dell'errore.
    }

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Ti ringrazio Pierofix.

    Non essendo un esperto di javascript ho adattato un esempio trovato con la ricerca alla mia particolare esigenza.

    Ho visitato il link ed è molto istruttivo!
    Vedrò di migliorare per il futuro, grazie e buon fine settimana.

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.