JavaScript - check input
Résolu
graphh
Messages postés
40
Statut
Membre
-
Seb33300 Messages postés 16 Statut Membre -
Seb33300 Messages postés 16 Statut Membre -
Bonjour,
Dans le cadre de l'envoie d'un formulaire, j'aimerais controler la saisie de l'utilisateur en lui empêchant d'entrer les caractères spéciaux hormis le "é". J'ai commencé avec ce petit code mais cela ne donne rien:
JavaScript:
Formulaire:
Normalement ça vérifie a l'envoie du formulaire, j'aimerais empêcher dès la saisie à un utilisateur d'entrer ces caractères...
Si vous savez m'aider, merci!
Dans le cadre de l'envoie d'un formulaire, j'aimerais controler la saisie de l'utilisateur en lui empêchant d'entrer les caractères spéciaux hormis le "é". J'ai commencé avec ce petit code mais cela ne donne rien:
JavaScript:
function isAlphabet(elem, helperMsg) { var alphaExp = /^[a-zA-Z]/; if(elem.new_name.match(alphaExp)) { return true; } else { alert(helperMsg); elem.focus(); return false; } }
Formulaire:
<form method="post" action="index.php?page=managementStaff" id="addStaff"> <img src="design/warning.png"><span style="font-size: 14px;color: red;"> Must have a name</span><br /> <label>Name</label><input type="texte" name="new_name"><br/> <label>Surname</label><input type="texte" name="new_surname"><br/> <input type="submit" value="Add" onclick="return isAlphabet(document.getElementById('new_name'), 'Letters Only Please')"> <form>
Normalement ça vérifie a l'envoie du formulaire, j'aimerais empêcher dès la saisie à un utilisateur d'entrer ces caractères...
Si vous savez m'aider, merci!
A voir également:
- Check input javascript
- Check disk - Guide
- Check flash - Télécharger - Sécurité
- Cd check - Télécharger - Récupération de données
- Check signal cable ✓ - Forum Windows
- No signal input check video cable - Forum Matériel & Système
6 réponses
Pourquoi faire compliquer ?
Attention, le code ci dessous n'autorise que des lettres (sans espaces ni tiret).
Si tu veux autoriser les espace alors il faut mettre [a-z ], pour les espaces et les tirets : [a-z -] (en gros tu rajoutes tout ce que tu veux autoriser entre les crochets)
Attention, le code ci dessous n'autorise que des lettres (sans espaces ni tiret).
Si tu veux autoriser les espace alors il faut mettre [a-z ], pour les espaces et les tirets : [a-z -] (en gros tu rajoutes tout ce que tu veux autoriser entre les crochets)
<script type="text/javascript"> function verifier_champs(){ if(document.getElementById('new_name').value == ''){ alert('Vous devez saisir un nom.'); return false; } if( !(/^[a-z]*$/i.test(document.getElementById('new_name').value)) ){ alert('Le nom ne doit pas contenir de caractères spéciaux.'); return false; } return true; } </script> <form method="post" action="index.php?page=managementStaff" id="addStaff" onsubmit="return verifier_champs()"> <img src="design/warning.png"><span style="font-size: 14px;color: red;"> Must have a name</span><br /> <label>Name</label><input type="texte" name="new_name" id="new_name"><br/> <label>Surname</label><input type="texte" name="new_surname" id="new_surname"><br/> <input type="submit" value="Add"> </form>
Bonjour
Enlève les caractères spéciaux que tu souhaites garder .
Bonne journée .
Cordialement , ApL
<script type="text/javascript"> function valid_mail(evt) { var keyCode = evt.which ? evt.which : evt.keyCode; var interdit = 'àâäãçéèêëìîïòôöõùûüñ &*?!:;,\t#~"^¨%$£?²¤§%*()[]{}<>|\\/'\''; if (interdit.indexOf(String.fromCharCode(keyCode)) >= 0) { return false; } } </script>
Enlève les caractères spéciaux que tu souhaites garder .
Bonne journée .
Cordialement , ApL
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Je viens d'essayer votre script, et dans un cas comme dans l'autre, rien ne change, je peux entrer n'importe qu'elle valeurs dans ma DB, et donc dans mon champs.
J'ai vu sur certains site que des formulaires interdisaient directement la saisie, et donc ne faisaient pas une vérification à l'envoie du formulaire mais empêchaient directement la saisie de certains caractères.
Est-ce que cela vous dit quelque chose?
Merci!
Je viens d'essayer votre script, et dans un cas comme dans l'autre, rien ne change, je peux entrer n'importe qu'elle valeurs dans ma DB, et donc dans mon champs.
J'ai vu sur certains site que des formulaires interdisaient directement la saisie, et donc ne faisaient pas une vérification à l'envoie du formulaire mais empêchaient directement la saisie de certains caractères.
Est-ce que cela vous dit quelque chose?
Merci!
Problème toujours non résolu, mais j'ai trouvé un script qui correspond un peu plus à mes attentes.
Seulement il me reste un soucis, lorsque je fais une insertion de caractères valides(i.e: test), il me coupe ma chaîne pour me laisser seulement le 1er caractère(-> t), si j'entre un caractère non autorisé(i.e: test#), même chose(-> t). Si maintenant j'entre une caractère mauvaise mais commençant par un désirable (i.e: #test), la plus rien n'apparaît dans mon champ(-> ).
Si vous pouviez m'aider à finaliser cela... un grand merci!
PS: Lors d'une mauvaise entrée, j'aimerai une alert "bad entry", je dois donc insérer
J'insers ceci avant mon return ChaineValidee je suppose? :)
<script type="text/javascript"> function validation(chaine) { chaineValidee=''; caracteresValides="abcdefghijklmnopqrstuvwxyzéèàùâêûîìABCDEFGHIJKLMNOPQRSTUVWXYZ-"; // caracteresNonValides=""; for (i=0; i<chaine.length; i++) { if (caracteresValides.indexOf(chaine.charAt(i)) != -1) // if (caracteresNonValides.indexOf(chaine.charAt(i)) == -1) { chaineValidee += chaine.charAt(i) } return chaineValidee; } } </script> <form method="post" action="index.php?page=managementStaff" id="addStaff"> <img src="design/warning.png"><span style="font-size: 14px;color: red;"> Must have a name</span><br /> <label>Name</label><input type="texte" name="new_name" onChange="this.value=validation(this.value)"><br/> <label>Surname</label><input type="texte" name="new_surname" onChange="this.value=validation(this.value)"><br/> <input type="submit" value="Add"> <form>
Seulement il me reste un soucis, lorsque je fais une insertion de caractères valides(i.e: test), il me coupe ma chaîne pour me laisser seulement le 1er caractère(-> t), si j'entre un caractère non autorisé(i.e: test#), même chose(-> t). Si maintenant j'entre une caractère mauvaise mais commençant par un désirable (i.e: #test), la plus rien n'apparaît dans mon champ(-> ).
Si vous pouviez m'aider à finaliser cela... un grand merci!
PS: Lors d'une mauvaise entrée, j'aimerai une alert "bad entry", je dois donc insérer
alert('bad entry');
J'insers ceci avant mon return ChaineValidee je suppose? :)
Pour le cumule du contrôle des 2 input, je fais une concaténation avec un deuxième argument dans le if?