Ici, j'ai un champ de saisie.
$('#expiry_date').keyup(function() {
$('#expiry_date').attr('maxlength','7');
var curr_val = $(this).val();
var expiry_date = curr_val.replace(/^(\d\d)(\d)$/g,'$1/$2').replace(/[^\d\/]/g,'');
$('#expiry_date').val(expiry_date);
});
5 Réponses :
Remplacez simplement l'exigence d'avoir 3 caractères numériques par seulement 2 et un groupe de capture unique au lieu de 2 ( version éditée forte>: a finalement fait avec 2 groupes de capture, mais le second devient facultatif): p> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="expiry_date" id="expiry_date" placeholder="MM / YYYY" class="form-control">
votre code fonctionne. Mais il y a un problème. En mettant la valeur 22 automatiquement '' / "ajoute mais lorsque je frappe i Backspace, je ne peux pas supprimer le" / "enfreindre de la seconde, je peux entrer un nombre de caractères comme 22222222 /.
Vaut probablement la peine d'ajouter le code-clés pour Supprimer code> aussi.
Puisque vous appendez toujours un '/' après que deux caractères ne soient entrés, ce ne serait pas quelque chose de plus simple? JSFIDDLE LINK: https://jsfiddle.net/d1lcwysa/4/ p> p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input name="expiry_date" id="expiry_date" placeholder="MM / YYYY" class="form-control">
Veuillez prendre le temps de décrire les problèmes et pourquoi cette solution aide. N'oubliez pas que nous sommes ici pour éduquer les gens, pas seulement la décharge de code sur eux.
<input name="expiry_date" id="expiry_date" onkeyup="GetDate()" placeholder="MM /YYYY" class="form-control"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Ici faisait face au même problème. Ne pouvait pas supprimer '/'
qui résout la suppression de '/' } p>