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

Résolu/Fermé
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 - 25 mars 2022 à 11:56
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 - 25 mars 2022 à 13:18
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 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
25 mars 2022 à 12:14
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 mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
25 mars 2022 à 12:26
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 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
25 mars 2022 à 13:15
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 mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
25 mars 2022 à 13:18
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