le MEMO du WEB développeur
 

••• Astuces de programmation •••   Liste des Mémos, astuces et bonnes pratiques

Garder une variable de session après fermeture du navigateur - PHP
Créer un bouton imprimer sur sa page web - Javascript
Empêcher de coller du texte dans un champs input de type text - JQuery
Retrouver les coordonnées latitude longitude d'un endroit avec Google Map - Divers

Ajouter un masque de saisie dans un champs input text - JQuery

Testez le masque de saisie :

Il est possible de rajouter un masque de saisie lors de la saisie d'un champs input text d'un formulaire HTML qui empêche l'utilisateur de saisir certains caractères.

Ce masque codé en javascript, se déclanche sur l'événement keyup du champs texte du formulaire.
L'input text doit porter une classe spécifique, ici la classe only_alpha_num qui nous permettra de déclancher l'évenement keyup.

Lorsque l'utilisateur tape un caractère, on analyse ce caractère dans l'événement keyup que l'on fait passer par le filtre d'une expression régulière. Dans notre cas on vérifie que le caractère tapé est un caractère alphanumérique, si la condition est vérifiée, on applique la fonction supprimer_dernier_caractere qui va supprimer du champs text le dernier caractère saisi. 
Il devient impossible alors pour l'utilisateur de saisir un autre caractère qu'un caractère alphanumérique.

 

code HTML :

<form>
  <imput type='text' name='cache-texte' class='only_alpha_num' id="no_paste"/>
</form>

Code javascript :

function supprimer_dernier_caractere(elm) {
  var val = $(elm).val();
var cursorPos = elm.selectionStart;
$(elm).val(
   val.substr(0,cursorPos-1) + // before cursor - 1
  val.substr(cursorPos,val.length) // after cursor
)
elm.selectionStart = cursorPos-1; // replace the cursor at the right place
elm.selectionEnd = cursorPos-1;
}

$(document).ready( function () {
  // Supprime le dernier caractère s'il n'est pas alphanumérique sur evt keyup
  $('body').delegate('input.only_alpha_num','keyup',function(){
    if(!$(this).val().match(/^[0-9a-z]*$/i)) // a-z et 0-9 uniquement
      supprimer_dernier_caractere(this);
  });


// Annulation du "coller" dans l'input texte auquel on a affecté l'identifiant "no_paste"
document.getElementById('no_paste').addEventListener('keydown', 
  function (foo){
    if (foo.keyCode == 86)
    {
       // alert('Vous avez copié du texte');
foo.preventDefault();
    }
 });


}) 
publié le 13/06/2013 par Memo Web
AstuceExpression régulière
Commentaire :
Bonjour, vous n'avez pas emp�ch� le copier coller, mais juste le v ..
par inconnu, le 15/04/2015
Effectivement, pour résoudre le problème rapidement j'ai finalement rajouté une fonction javascript qui permet d'annuler le copier/coller dans le champs (action sur l'élément input d'identifiant "no_paste")
L'idéal serait de traiter l'intégralité de la chaîne collée sur l'événement onpaste (JQuery) en enlevant tous les caractères indésirables.
par tarabusk, le 12/07/2013
Malheureusement, cela ne gère pas le copier / coller...
par inconnu, le 11/07/2013
Commenter le Mémo :

Une image de background aléatoire - CSS
Empêcher l'autocomplétion dans les formulaires - HTML
Une liste d'articles au hasard dans Wordpress - Wordpress
DatePicker de JQuery : Déployer le calendrier à l'ouverture de la page - JQuery
Apparition d'un élément en fondu avec JQuery sur le survol de souris - JQuery
Détecter un click à l'extérieur d'un élément avec JQuery - JQuery
Afficher une image différente selon la date de l'année en javascript - JQuery
Atteindre une ancre avec JQuery - JQuery
Détecter lorsqu'on appuie sur la touche entrée en JQuery - JQuery
Comment ne pas interpréter une commande HTML à l'affichage - HTML
Padding et margin en hauteur ne fonctionnement pas sur éléments inline - HTML
Revenir à la page précédente du navigateur - HTML
Trouver le chemin canonique absolu d'un répertoire - HTML
Faire appel à un fichier CSS à l'intérieur d'un autre fichier CSS - CSS
Faire clignoter un élément avec JQuery - JQuery
Ajoutez vos propres Mémos sur MEMO-WEB

Il suffit de vous créer un compte sur le site

Vous pourrez choisir un thème parmis l'une des catégories proposées par MEMO-WEB.

Rédigez votre Mémo.
Après validation par MEMO-WEB, il sera mis en ligne.
Ajouter vos Mémos