Bonjour a tous, je suis nouveau et je fais face a un probleme. mon probleme est que, dans mon formulaire par exemple dans les champs nome et prenom, ils doivent prendre uniquement de lettre, pas de chiffre, je le fais, mais je ne peux pas entrer des noms composes, c'est a dire la touche espace ne fonctionne pas . par exemple je ne peux pas avoir Zavier Pierre, mais Zavierpierre. comment vous pouver m'apporter un peu de lumiere? je vous remercie.

Ce que je fais

voici mon code:

 <script type="text/javascript">
    function verifierCaracteres_prenom_eleve(event) {

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

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

    var caracteres = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

    if(caracteres.indexOf(touche) >= 0) {
        champ.value += touche;
    }

}
  </script>

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir

Ce que j'obtiens

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(

4 réponses


Laznet
Réponse acceptée

N'oublie pas de cliquer sur "Il a répondu à ma question" pour que ton sujet soit validé.

Salut,

Sauf erreur, IndexOf ne s'utilise pas sur une string (ce que tu fais avec caracteres), tu dois utiliser un tableau pour que la fonction puisse faire une recherche.. Doc sur IndexOf

Mais le mieux reste selon moi d'utiliser une expression régulière (qui te permettra de faire des recherches un peu plus approfondie qu'une simple recherche sur des caractères)
Déjà en terme de code c'est cool, parce que tu n'as pas besoin d'écrire tout l'alphabet un simple a-zA-Z suffit :D pour par exemple effectuer une recherche sur des lettres.

La doc sur les expressions régulière

Un testeur d'expression régulière :D

Bel Poze
Auteur

merci Mika d'avoir penche sur mon cas, mais je ne vois pas trop comment faire, jai deja fait le travail j'ai seulement besoin que la touche 'espace' soit fonctionnelle dans dans le champ

Bel Poze
Auteur

le probleme est resolu, je ne l'aurais pas imagine, j'ai seulement ajoute un espace apres la chaine autorisee et ca fonctionne