JavaScript - check input

Résolu
graphh Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   -  
Seb33300 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -
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:
			
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:

6 réponses

Seb33300 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   1
 
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)

<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>
1
graphh Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   1
 
Parfait, un grand merci!

Pour le cumule du contrôle des 2 input, je fais une concaténation avec un deuxième argument dans le if?
0
Seb33300 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   1
 
Ajoute plutot 2 autres if :

if(document.getElementById('new_surname').value == ''){
	alert('Vous devez saisir un surnom.');
	return false;
}
		
if(	!(/^[a-z]*$/i.test(document.getElementById('new_surname').value)) ){
	alert('Le surnom ne doit pas contenir de caractères spéciaux.');
	return false;
}
0
Profil bloqué
 
Bonjour

 <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
0
graphh Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   1
 
je garde l'appel de la fonction avec un
onclick="return valid_mail"

?

Merci de ta réponse!
0
Profil bloqué
 
éssaye sans et éssaye avec .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
graphh Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   1
 
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!
0
graphh Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   1
 
Problème toujours non résolu, mais j'ai trouvé un script qui correspond un peu plus à mes attentes.
 <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? :)
0