J'ai une barre de résistance de mot de passe qui utilise li
qui sont stylisés avec des couleurs différentes pour indiquer à l'utilisateur la force de son mot de passe, comme ceci :
<input type="password" name="password" id="password" placeholder="Password">
<ul id="passwordStrength">
<li class="point-reg"></li>
<li class="point-reg"></li>
<li class="point-reg"></li>
<li class="point-reg"></li>
</ul>
Lorsqu'un critère de regEx a été satisfait par une série de if
les déclarations, les counter
est incrémenté et un switch
puis ajoute les CSS nécessaires background
à chaque li
en fonction de l'élément counter
valeur.
var password_li = $('#passwordStrength').find('li');
var counter = 0;
if(pw.match(/[A-Z]/) && pw.match(/[a-z]/)) {
counter++;
}
//further regex if statements
switch(counter) { //patrick
case 0:
break;
case 1:
$(password_li[0]).css('background', '#e30613'); //first li
break;
case 2:
$(password_li[0]).css('background', '#e30613'); //first li
$(password_li[1]).css('background', '#f9b233'); //second li
break;
case 3:
$(password_li[0]).css('background', '#e30613'); //first li
$(password_li[1]).css('background', '#f9b233'); //second li
$(password_li[2]).css('background', '#53ab58'); //third li
break;
case 4:
$(password_li[0]).css('background', '#e30613'); //first li
$(password_li[1]).css('background', '#f9b233'); //second li
$(password_li[2]).css('background', '#53ab58'); //third li
$(password_li[3]).css('background', '#418746'); //fourth li
break;
}
Cela ne semble pas être la manière la plus efficace de styliser l'élément li
articles. De plus, si l'utilisateur supprime ensuite la valeur qu'il a saisie, l'élément li
Les éléments conservent la couleur qui leur a été attribuée, au lieu de revenir à leur couleur par défaut, le gris, ce qui est logique puisqu'il n'existe pas de fonction permettant de supprimer le style. Je peux ajouter du gris à l'élément li
articles en fonction de ce que case
a été respecté dans le switch
comme suit :
case 1:
$(password_li[0]).css('background', '#e30613');
$(password_li[1]).css('background', '#dcdcdc');
$(password_li[2]).css('background', '#dcdcdc');
$(password_li[3]).css('background', '#dcdcdc');
break;
Mais là encore, cette approche ne semble pas la plus efficace.
Question
Comment puis-je aborder cette fonctionnalité de manière à ce que le style de l'élément li
peuvent être ajoutés et supprimés de manière dynamique ?
Voici un JSFiddle