Problème fonction JQuery
ertry
-
ertry -
ertry -
Bonjour,
Je rencontre un problème dans la modélisation d'une fonction en JQuery. En effet, je souhaite insérer un espace automatiquement lorsque je remplis mon champ text dans lequel je dois taper un numéro de téléphone. Le numéro de tel sera donc écrit de la façon suivante +33 (0)1 02 03 04 05.
Merci d'avance si vous pouvez me mettre sur la voie :/
Je rencontre un problème dans la modélisation d'une fonction en JQuery. En effet, je souhaite insérer un espace automatiquement lorsque je remplis mon champ text dans lequel je dois taper un numéro de téléphone. Le numéro de tel sera donc écrit de la façon suivante +33 (0)1 02 03 04 05.
Merci d'avance si vous pouvez me mettre sur la voie :/
3 réponses
-
Salut,
Un début de solution : https://jsfiddle.net/6dqjg3wh/
Source : https://stackoverflow.com/questions/17260238/how-to-insert-space-every-4-characters-for-iban-registering
Bonne journée, -
Une adaptation possible avec jQuery (pas forcément plus simple) : https://jsfiddle.net/6dqjg3wh/1/
Tu peux également regarder du coté des nombreux plugins jQuery qui propose des "input mask", deux exemple parmis d'autres :
- https://github.com/RobinHerbots/Inputmask
- https://github.com/igorescobar/jQuery-Mask-Plugin -
Je viens de regarder l'exemple que tu m'as donné et j'en ai trouvé un autre :
https://jsfiddle.net/KyleKatarn/G7qjQ/2/
En gros il faudrait que ce soit un mélange de cet exemple (exemple ci-dessus) et de celui que tu m'a passé. Je souhaiterai qu'il y ait des espaces qui se mettent automatiquement lors de la saisie (exemple que tu m'as donné) et que les formats suivants soient pris en comtpe : +33 6 12 34 56 78, 06 12 34 56 78 et 0033 7 12 34 56 78 (exemple du lien qu je t'ai mis au dessus).
J'ai testé des choses mais rien de bien concret et qui marche, voilâ ce que j'ai pour le moment :
$(document).ready(function(){ $('.phone').each(function(){ $(this).on('input propertychange', function(e){ var $target = $(e.target), position = $target[0].selectionEnd, length = $target.val().length; $target.val($target.val().replace(/[^(\+33|0)\d0-9]/g, '').replace(/(.{2})/g, '$1 ').trim()); $target[0].selectionEnd = position += (($target.val().charAt(position - 1) === ' ' && $target.val().charAt(length - 1) === ' ' && length !== $target.val().length) ? 1 : 0); }); }); });