Problème fonction JQuery

Fermé
ertry - 3 oct. 2016 à 14:20
 ertry - 17 oct. 2016 à 10:24
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 :/

A voir également:

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
3 oct. 2016 à 16:40
0
Je vais regarder ça, même si je comprends pas grand chose pour le moment ! Merci beaucoup Pitet !!
0
Pitet,

J'ai regardé l'exemple que tu m'as donné, et j'avoue qu'avec le JS "pur" j'ai un peu de mal même si je comprends le code :/
Est ce qu'il y aurait une solution qui se rapproche du JQuery (JQuery plus parlant à mon sens). ?

Merci d'avance,
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
4 oct. 2016 à 12:30
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
0
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);
       });
    });
});
0
Vraiment personne pour me débloquer ? :/
0
Toujours personne ? J'ai beau chercher, je ne trouve pas :/
0