Donc, ma question a été posée par quelqu'un d'autre dans sa forme Java ici: Java - Créer une nouvelle instance de chaîne avec une longueur spécifiée et remplie d'un caractère spécifique. Meilleure solution?
. . . mais je cherche son équivalent en JavaScript.
En gros, je veux remplir dynamiquement les champs de texte avec des caractères "#", en fonction de l'attribut "maxlength" de chaque champ. Ainsi, si un champ a maxlength="3"
, alors le champ serait rempli avec "###".
Idéalement, il y aurait quelque chose comme le StringUtils.repeat("#", 10);
Java, mais, jusqu'à présent, la meilleure option à laquelle je peux penser est de boucler et d'ajouter les caractères "#" un par un jusqu'à ce que la longueur maximale soit atteinte. Je ne peux pas m'empêcher de penser qu'il existe un moyen plus efficace de le faire que cela.
Des idées?
À noter - Je ne peux pas simplement définir une valeur par défaut dans l'entrée, car les caractères "#" doivent être effacés au focus, et, si l'utilisateur n'a pas saisi de valeur, ils doivent être "remplis" à la perte de focus. C'est l'étape de "remplissage" qui me préoccupe
1 votes
Est-ce que vous faites cela pour masquer le texte d'un champ de saisie ?
0 votes
@MatthewCox: Non, c'est plus pour fournir un affichage visuel de maxlength. Dans ce cas, il s'agit d'un ensemble de champs de numéro de téléphone qui sont séparés en 3 parties du numéro. Cela montrerait que les 2 premiers champs nécessitent 3 chiffres et le dernier en nécessite 4.
0 votes
Possible duplicate de Répéter String - Javascript
0 votes
Aujourd'hui,
placeholder
est probablement recommandé. Appliquer ceci à tous les qui ont unmaxlength
ressemble àdocument.querySelectorAll("[maxlength]").forEach((element) => element.placeholder = "#".repeat(element.maxLength));
.