Javascript code de validation pour s'assurer qu'au moins une case est cochée

Comment pourrais-je ajouter du code javascript de validation pour s'assurer qu'au moins un des éléments est-elle vérifiée?

Sélectionnez parmi les cours ci-dessous:

        <ul id="class_prices">
             <li>

                <input onclick="update()" name="lbsm" id="lsbm" type="checkbox" value="lbsm">
                <label>Law &amp; Business Study Material ($59.00)</label>
            </li>

            <li>

                <input onclick="update()" name="tsm" id="tsm" type="checkbox" value="tsm">
                <label>Trade Study Material ($59.00)</label>
            </li>
            <li>

                <input onclick="update()" name="lbepc" id="lbepc" type="checkbox" value="lbepc">
                <label>Law &amp; Business Exam Preperation Class ($50.00)</label>
            </li>
            <li>

                <input onclick="update()" name="tepc" id="tepc" type="checkbox" value="tepc">
                <label>Trade Exam Preperation Class ($50.00)</label>
            </li>

        </ul>

        </td>

            <td><h2>$<span id="coursetotal"></span></h2></td>
                </tr>

Voici le code javascript que j'ai, et qui ne fonctionne pas.

<script type="text/javascript">
  function valthisform() {
    var chkd = document.form1.lsbm.checked || document.form1.tsm.checked||  document.form1.lbepc.checked|| document.form1.tepc.checked

    if (chkd == true) { } else { alert ("please check a checkbox") }
  }
</script>

J'apprécie vos commentaires.

  • Votre code a été assez compliqué... et c'était juste quelques lignes! Utiliser la bonne indentation de sorte que c'est plus facile à lire. Ne jamais utiliser quelque chose comme chkd == true. Si vous avez vraiment besoin de tester si quelque chose est vrai, utiliser if( chkd ). Dans votre cas, chkd est soit undefined ou "checked". if( chkd == true ) sera de retour faux dans les deux cas. Utiliser if( chkd == undefined ) ou if( !chkd ) et supprimer le vide bloc de code tout à fait.
  • J'ai essayé et ça ne fonctionne pas. Ceci est la page que je suis en train de travailler sur. contractorsintelligence.com/secured_payment/...
  • stackoverflow.com/questions/7960208/...