Partage
  • Partager sur Facebook
  • Partager sur Twitter

verifier si une checkbox est cochée

Sujet résolu
    19 janvier 2017 à 23:59:38

    Bonjour,

    J'ai un script récupéré sur un site pour la validation d'éléments d'un formulaire.

    J'ai ajouté une checkbox, et j'aimerai vérifier qu'elle est bien coché à la soumission du formulaire.

    J'ai donc tenté d'ajouter une ligne du style, mais cela ne semble pas fonctionner. Merci pour votre aide

    // Terms validation
        var checkboxregex = $('input[name=termes]').is('!:checked')
       
       $.validator.addMethod("validcheckbox", function( value, element ) {
           return this.optional( element ) || checkboxregex.test( value );
       }); 



    $('document').ready(function()
    {    
       // name validation
        var nameregex = /^[a-zA-Z0-9 ]+$/;
       
       $.validator.addMethod("validname", function( value, element ) {
           return this.optional( element ) || nameregex.test( value );
       }); 
       
       // valid email pattern
       var eregex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
       
       $.validator.addMethod("validemail", function( value, element ) {
           return this.optional( element ) || eregex.test( value );
       });
       
       $("#register-form").validate({
         
        rules:
        {
        name: {
         required: true,
         validname: true,
    	 minlength: 5,	
         maxlength: 25
        },
        email: {
         required: true,
         validemail: true,
    	 maxlength: 60
        },
      
         },
         messages:
         {
        name: {
         required: "Merci d'indiquer un pseudo",
         validname: "Le pseudo ne peut contenir que des caractères alphanumériques",
         minlength: "Votre pseudo est trop court"
           },
        email: {
         required: "Merci d'indiquer une adresse email",
         validemail: "Merci d'indiquer une adresse email valide"
            },
    
         },
         errorPlacement : function(error, element) {
         $(element).closest('.form-group').find('.help-block').html(error.html());
         },
         highlight : function(element) {
         $(element).closest('.form-group').removeClass('has-success').addClass('has-error');
         },
         unhighlight: function(element, errorClass, validClass) {
         $(element).closest('.form-group').removeClass('has-error').addClass('has-success');
         $(element).closest('.form-group').find('.help-block').html('');
         },
         
         submitHandler: function(form) {
                        form.submit();
         alert('ok');
                    }
         }); 
     })





    -
    Edité par Natsu57 20 janvier 2017 à 0:01:13

    • Partager sur Facebook
    • Partager sur Twitter
      20 janvier 2017 à 0:17:22

      Il faut récupérer la propriété et pas un attribut.
      avec la méthode prop('checked')
      • Partager sur Facebook
      • Partager sur Twitter
        20 janvier 2017 à 11:12:07

        Merci pour ton aide.

        Après avoir lu la doc de jquery, il faudrait que je fasse. Le hic c'est que cela ne fonctionne pas, il n y a aucun message d'erreur et je suis perdu :(

        html

        <div class="form-group">
         <label class="checkbox-inline"><input type="checkbox" name="checkbox" id="checkbox" value="1">J'accepte les termes et conditions</label><span class="help-block" id="error"></span></div>

        Cette ligne vérifie si l'attribut est coché d'après ce que j'ai compris :

        $('#checkbox').prop('checked')

         J'ai aussi testé

        var checkboxregex = !$('#checkbox').prop('checked');
        



        J'ai donc ajouté ce code

        // checkbox validation
            var checkboxregex = $('#checkbox').prop('checked');
            
           $.validator.addMethod("validcheckbox", function( value, element ) {
               return this.optional( element ) || checkboxregex.test( value );
           }); 

         Dans rules et messages j'ai ajouté :

        checkbox: {
             required: true,
             validcheckbox: true
            },
        
        checkbox:{
             required: "Merci d'accepter nos termes et conditions"
             }



        -
        Edité par Natsu57 20 janvier 2017 à 11:16:36

        • Partager sur Facebook
        • Partager sur Twitter
          20 janvier 2017 à 11:34:43

          Il faut attacher un gestionnaire d'évènement, du type submit si tu veux que la valeur soit enregistré au moment du submit d'un formulaire, ou alors un gestionnaire d'évènement de type change pour voir si la valeur change.

          <input type="checkbox" name="checkbox" value="1" id="checkbox">
          <script
            src="https://code.jquery.com/jquery-3.1.1.min.js"
            integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
            crossorigin="anonymous"></script>
          <script>
          $(function(){
          	$('#checkbox').change(function() {
          			var boxchecked = $(this).prop('checked');
          			alert( boxchecked);
          	});
          });

          Ce petit code affiche un alert à chaque changement de propriété de la checkbox.
          Edit: Désolé j'ai pas regardé tout ton code, il faut sans doute bien construire l'objet donné à validate.

          -
          Edité par maroufle34 20 janvier 2017 à 11:38:49

          • Partager sur Facebook
          • Partager sur Twitter
            20 janvier 2017 à 11:41:09

            En effet, je viens de voir que pour la soumission du formulaire il y avait qu'un bout ton mais pas de submit.

            Du coup avec un submit et le code suivant cela fonctionne. Merci pour ton aide :)

            // checkbox validation
                var checkboxregex = !$('#checkbox').prop('checked');
                
               $.validator.addMethod("validcheckbox", function( value, element ) {
                   return this.optional( element ) || checkboxregex.test( value );
               }); 



            • Partager sur Facebook
            • Partager sur Twitter

            verifier si une checkbox est cochée

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown