Formulaire - aide à la saisie

Contenu du snippet

Ces scripts aident à la saisie de champs de formulaire.
Ils ne contrôlent pas la validité du format final de l'information.
Pour contrôler la validité absolue d'une infomation, il faut utiliser des scripts coté serveur : PHP, ASP, ASP.NET, JSP...
C'est pour cela que j'appelle ces scripts "Aide à la saisie"
et non "Contrôle du formulaire".

---------------------------------------------------------------------------------------------

Interdire une balise HTML
Ce script interdit la saisie d'une balise HTML dans un champ de formulaire.
Les caractères interdits sont "<", ">", "#", "%".

Commune
Le nom doit être sous la forme Saint-Machin.
St- et St- sont automatiquement modifiés en Saint- .
Il ne contrôle pas le format final (nombre de caractères).

Numéro de téléphone
Le numéro sous la forme 01 40 xx xx xx \n ou +33 (0) 1 40 xx xx xx.
Le script contrôle si les caractères sont autorisés et les espaces respectés.
Il ne contrôle pas le format final (nombre de caractères).

Code postal
Il ne contrôle pas le format final (nombre de caractères).

Nom ou prénom
Seuls les lettres, lettres accentuées, tiret, blanc et simple quote sont autorisés.
La 1ère lettre doit être une majuscule.
2 titres, blancs ou simples quotes consécutifs sont interdits.
Il ne contrôle pas le format final (nombre de caractères).

Longueur d'un texte
Ce script contrôle la longueur d'un texte à la saisie.

Placez les scripts dans la zone <head></head>,
et les évévenements dans le champ de formulaire concerné.
Préciser la longueur du texte dans l'événement
onkeyup="testerlongueur(this,10)" ... ici 10 caractères.

Source / Exemple :


<script language="JavaScript" type="text/JavaScript">
// *****************************************************************
// Formulaire - aide à la saisie
// pascal.itos@wanadoo.fr
// http://www.dev35.com
// *****************************************************************

function testertexte(texte){
// Aide à la saisie : Interdire une balise HTML
// http://www.dev35.com  -  pascal.itos@wanadoo.fr
 	var expression = /[<>#%]+/gi; // caractères interdits
 	if (expression.test(texte.value)){
		alert ("N'utilisez pas que des caractères alphanumériques.");
		texte.value=texte.value.substring(0,texte.value.length-1);
 	}
}

function testercommune(texte){
// Aide à la saisie : Commune
// http://www.dev35.com  -  pascal.itos@wanadoo.fr
 	var expression = /^[a-z '-]+$/gi; // caractères autorisés
	if (!expression.test(texte.value)){
		alert ("Ecrivez le nom sous la forme : Saint-Machin ...");
		texte.value=texte.value.substring(0,texte.value.length-1);
		return false;
 	}
	var a=texte.value;
	a=a.replace(/(st )/gi,"Saint-");
	a=a.replace(/(saint )/gi,"Saint-");
	texte.value=a.replace(/(Saint )[A-Za-z]/gi,"Saint-");
	var expression = /[A-Z]{1}[A-Z]{1}/g; 
 	if (expression.test(texte.value)){
		alert ("N'écrivez pas le nom en \"tout majuscule\"");
		texte.value=texte.value.substring(0,texte.value.length-1);
 	}
}

function testertelephone(texte) {
// Aide à la saisie : numéro de téléphone
// http://www.dev35.com  -  pascal.itos@wanadoo.fr
 	var expression = /[^0-9 +()]+/gi;
 	if (expression.test(texte.value)){
		alert ("Ecrivez le numéro sous la forme 02 99 xx xx xx \n ou +33 (0) 2 99 xx xx xx");
		texte.value=texte.value.substring(0,texte.value.length-1);
		return false;
 	}
	var expression=/[0-9]{3}/gi;
	if (expression.test(texte.value)){
		texte.value=texte.value.substring(0,texte.value.length-1)+" "+texte.value.substring(texte.value.length-1,texte.value.length);
 	}	
}

function testercodepostal (texte) {
// Aide à la saisie : code postal
// http://www.dev35.com  -  pascal.itos@wanadoo.fr
	var expression = /^[0-9]{0,5}$/g; // caractères autorisés
	if (!expression.test(texte.value)){
		alert ("Ecrivez le code postal avec 5 chiffres ...");
		texte.value=texte.value.substring(0,texte.value.length-1);
 	}
}

function testernom(texte){
// Aide à la saisie : Nom ou prénom
// http://www.dev35.com  -  pascal.itos@wanadoo.fr
	// Interdire des caratères non autorisés
	var a_str=texte.value;
 	var expression = /^[àáâãäåòóôõöøèéêëçìíîïùúûüÿñoæa-z '-]+$/gi; // caractères autorisés
	if (!expression.test(texte.value)){
		alert ("Ecrivez le nom sous la forme : Monté-Cristo ...");
		texte.value=texte.value.substring(0,texte.value.length-1);
		return false;
 	}
	// 1er caractère doit être une majuscule
	expression = /^[àáâãäåòóôõöøèéêëçìíîïùúûüÿñoæa-z]{1}+$/g;
	a_str=texte.value;
	if (expression.test(texte.value)){
		alert ("Le 1er caractère doit être une majuscule ...");
		a=texte.value.substring(0,1);
		texte.value=a_str.toUpperCase();
		return false;
 	}
	// Interdire 2 caractères identiques de suite : ' - 
	expression = /[-]{2}|[']{2}|[ ]{2}/g;
	a_str=texte.value;
	if (expression.test(texte.value)){
		alert ("Evitez 2 blancs ou - ou '");
		texte.value=texte.value.substring(0,texte.value.length-1);
		return false;
 	}
	// Interdire 2 majuscules de suite
	expression = /[A-Z]{1}[A-Z]{1}/g;
	a_str=texte.value;
 	if (expression.test(texte.value)){
		alert ("N'écrivez pas le nom en \"tout majuscule\"");
		a_str=texte.value.substring(texte.value.length-1,texte.value.length);
		texte.value=texte.value.substring(0,texte.value.length-1)+a_str.toLowerCase();
 	}
}

function testerlongueur (texte,longueurmax) {
// Aide à la saisie : Longueur d'un texte
// http://www.dev35.com  -  pascal.itos@wanadoo.fr
	if (texte.value.length>longueurmax) {
		alert ("Les " + longueurmax + " caractères autorisés sont atteints.");
		texte.value=texte.value.substring(0,longueurmax);
	}

}
</script>

<form>
<input type="text" name="commune" onkeyup="testercommune(this)">
<input type="text" name="texte" onkeyup="testertexte(this)">
<input type="text" name="telephone" onkeyup="testertelephone(this)">
<input type="text" name="codepostal" onkeyup="testercodepostal(this)">
<input type="text" name="nom" onkeyup="testernom(this)">
<input type="text" name="texte" onkeyup="testerlongueur(this,10)">
</form>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.