IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

addClass et removeClass


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Par défaut addClass et removeClass
    Bonjour,

    J'ai un code de vérification avec switch, tout dépend du cas, je mets addClass et removeClass, l'événement s'applique seulement pour le vas 'weak' et le reste non en ce qui concerne la barre avec les couleurs:

    CSS:
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    .container, .weak, .medium, .good, .better, .best {
      height:10px;
      transition: all 0.4s ease;
    }
     
    .weak {
      width:40px;
    background:#EA4A34;
      }
     
    .medium {
       width:60px;
       background: #F69C55;
    }
     
    .good {
       width:80px;
       background: #F69C55;
    }
     
    .better {
        width:100px;
        background: #3C8FB0;
    }
     
    .best {
       width:120px;
        background: #5FBA7D;
    }

    HTML:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <input type="text" class="pass">
    <span class="wrap"></span>
    <br>
    <br>
    <div class="container"></div>

    Et dans mon code jQuery:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    function checkPassStrength(){
    var value = $('.pass').val();
        //console.log('v: '+value);
        var passLen = value.length;
        //console.log('l: '+passLen);
    		var strength = 0;
    		var upperCase = new RegExp('[A-Z]', 'g'); // at least 2 capital letters (even not in sequence)
    		var lowerCase = new RegExp('[a-z].*[a-z]', 'g'); // at least 2 small letters (even not in sequence)
    		var digits = new RegExp('\\d'); // at least one digit
    		var specChars = new RegExp('[;:|,.<>?!@#$§£¥©®%^&()_=°]', 'g'); // at least one special character
     
     
     
     
    if (passLen < 6) return 'Too short';
     
    if (passLen > 7) strength += 1
     
    if (value.match(lowerCase)) strength += 1
     
    res = value.match(upperCase);// strength += 1
    if(res != null && res.length >= 2) strength += 1
     
    if (value.match(digits)) strength += 1
     
    if (value.match(specChars)) strength += 1
     
     
    console.log('strength '+strength);
     
    switch(strength){
      	case 1:
    	strStrength = 'Weak';
          console.log('weak');
          $('.container').removeClass().addClass('weak');
        break;
     
        case 2:
    strStrength = 'Medium';
          console.log('medium');
          $('.container').removeClass().addClass('medium');
        break;
     
        case 3:
    	strStrength = 'Good';
          console.log('good');
          $('.container').removeClass().addClass('good');
        break;
     
        case 4:
    			strStrength = 'Better';
          console.log('better');
    $('.container').removeClass().addClass('better');
        break;
     
        case 5:
    			strStrength = 'Best';
          console.log('best');
    $('.container').removeClass().addClass('best');
        break;
     
     
        default:
        strStrength = 'To Default';
        break;
        }
     
     $('.wrap').html(strStrength).show();
     
    }
     
     
    $('.pass').on('keyup',function(){  
    	$('.wrap').html(checkPassStrength()).show();
     
      });
    Merci a vous

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    De rien...C'est pourquoi ?

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Par défaut
    La barre de progression, marche seulement que dans le cas de 'weak', pour le reste, l'événement ne marche pas

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Bonjour,

    Si tu as une div :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="container"></div>
    pour laquelle tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.container').removeClass().addClass('machin')
    tu te retrouves avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="machin"></div>
    Donc le sélecteur suivant sur .container ne trouve rien...
    Essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.container').removeClass().addClass('container machin')

  5. #5
    Invité
    Invité(e)
    Par défaut
    @EddiGordo Bien vu.

    Une autre approche, si on suppose que le "container" peut avoir d'autres classes (en dehors de celles concernées) :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="container blabla taratata"></div>

    Code jQuery : Sélectionner tout - Visualiser dans une fenêtre à part
      $('.container').removeClass('weak medium good better best').addClass('weak');

  6. #6
    Invité
    Invité(e)
    Par défaut
    Une autre approche encore :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="container"><span></span></div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     .container {
       width: 100px;
       border: 1px solid #ccc;
     }
     
     .container span {
       display: block;
       height: 10px;
       transition: all 0.4s ease;
     }
     
     .weak {
       width: 20%;
       background: #EA4A34;
     }
     
     .medium {
       width: 40%;
       background: #F69C55;
     }
     
     .good {
       width: 60%;
       background: #F69C55;
     }
     
     .better {
       width: 80%;
       background: #3C8FB0;
     }
     
     .best {
       width: 100%;
       background: #5FBA7D;
     }
    Code jQuery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
        var upperCase = new RegExp('[A-Z]', 'g'); // at least 2 capital letters (even not in sequence)
        var lowerCase = new RegExp('[a-z].*[a-z]', 'g'); // at least 2 small letters (even not in sequence)
        var digits = new RegExp('\\d'); // at least one digit
        var specChars = new RegExp('[;:|,.<>?!@#$§£¥©®%^&()_=°]', 'g'); // at least one special character
     
        function checkPassStrength() {
          var value = $('.pass').val();
          var passLen = value.length;
          var strength = 0;
     
          if (passLen > 7)
          {
            strength += 1
     
            if (value.match(lowerCase)) strength += 1
     
            res = value.match(upperCase); // strength += 1
            if (res != null && res.length >= 2) strength += 1
     
            if (value.match(digits)) strength += 1
     
            if (value.match(specChars)) strength += 1
     
          } else {
            strength = 0;
          }
     
          // (on doit pouvoir modifier la langue, sans modifier le nom des classes)
          strStrength_lang_array = ['Trop court', 'Faible', 'Moyen', 'Bon', 'Mieux', 'Meilleur']; // texte affiché
          strStrength_span_array = ['', 'weak', 'medium', 'good', 'better', 'best']; // classes
          strStrength = strStrength_lang_array[strength];
          $('.container span').removeClass().addClass(strStrength_span_array[strength]);
          // (le code ci-dessus remplace le switch)
     
          $('.wrap').html(strStrength).show();
        }
     
        $('.pass').on('keyup', function() {
          checkPassStrength();
        });
    Dernière modification par Invité ; 07/10/2016 à 11h06.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Méthodes "addClass" et "removeClass" javascript
    Par Regor dans le forum jQuery
    Réponses: 8
    Dernier message: 16/11/2015, 22h02
  2. Méthodes "addClass" et "removeClass" de jQuery
    Par Regor dans le forum jQuery
    Réponses: 1
    Dernier message: 07/11/2015, 18h22
  3. Réponses: 2
    Dernier message: 13/04/2014, 19h41
  4. removeClass et addClass
    Par freye dans le forum jQuery
    Réponses: 2
    Dernier message: 08/04/2013, 21h57
  5. removeclass jquery
    Par mama07 dans le forum jQuery
    Réponses: 4
    Dernier message: 01/05/2008, 11h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo