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

Résolu
emrh Messages postés 439 Statut Membre -  
emrh Messages postés 439 Statut Membre -
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

3 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 754
 
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 439 Statut Membre 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 40050 Statut Modérateur 4 754
 
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 439 Statut Membre 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