Cibler l'élément appelant en retour de fonction

Résolu
emrh Messages postés 427 Date d'inscription   Statut Membre Dernière intervention   -  
emrh Messages postés 427 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous...

J'ai trouvé une petite fonction sur Internet qui me convient bien pour interdire la saisie de certains caractères
( ' | ; ) qui affectent la partie dynamique de calculs sur mon formulaire...
Je voudrais appliquer cette fonction sur différents inputs mais je ne sais pas comment, en retour de fonction,
affecter UNIQUEMENT l'input concerné...

Voici ce code :

<input class="input-formulaire" required="" type="text" name="designation" autocomplete="off" value="<?php echo $reponse['designation'];?>" id="mon_input" onkeypress="caracteresInterdits(event); return false;" />
<input class="input-formulaire prix-formulaire" name="descriptif" id="mon_input" type="text" value="<?php echo $reponse['descriptif'];?>" maxlength="100" autocomplete="off" onkeypress="caracteresInterdits(event); return false;" />




// ############ CARACTÈRES INTERDITS ####################
function caracteresInterdits(event) {

    var keyCode = event.which ? event.which : event.keyCode;
    var touche = String.fromCharCode(keyCode);

    var champ = document.getElementById('mon_input');

    var caracteres = ';\'|';

    /*if(caracteres.indexOf(touche) >= 0) {// Code pour caractères autorisés
      champ.value += touche;
    }*/
    if (caracteres.indexOf(touche) == -1) { // Code pour caractères interdits
        champ.value += touche;
    }

}


J'ai essayé de placer un this, mais ça ne fonctionne pas...
Je vous remercie d'avance pour votre aide


Configuration: Linux / Chrome 99.0.4844.51
A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Tu as tout ce qu'il te faut dans la variable event
function caracteresInterdits(event) {

  var keyCode = event.which ? event.which : event.keyCode;
  var touche = String.fromCharCode(keyCode);
  
  var champ = event.target;
  var caracteres = ';\'|';

  /*if(caracteres.indexOf(touche) >= 0) {// Code pour caractères autorisés
    champ.value += touche;
  }*/
  if (caracteres.indexOf(touche) == -1) { // Code pour caractères interdits
    champ.value += touche;
  }

}

0
emrh Messages postés 427 Date d'inscription   Statut Membre Dernière intervention   20
 
Tout semble simple quand on connait...
Je te remercie Jordan pour ton aide rapide !
Du coup je peux remettre les id que je veux sur mes input ! :-)

Je note une chose étrange tout de même en testant cette fonction c'est que si je clic au beau milieu d'un mot pour y ajouter un caractère autorisé, elle me balance ce caractère en fin de saisie dans l'input !
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Et oui, il va falloir modifier un peu le code pour que ça puisse prendre y compris les modifications au milieu.
Je te laisse chercher un peu et j'essaierai, si j'ai un peu de temps, de te le faire
1
emrh Messages postés 427 Date d'inscription   Statut Membre Dernière intervention   20
 
Je pense qu'il va falloir que je regarde du côté des chaînes de caractères et des propriétés .lenth !
;-)
0