le mieux c'est d'utiliser le javascript
exemple :
pour l'envoi du formulaire :
<form method="POST" action="mon-script.php" target="_blank" onsubmit="return Form_Valid(this)">
et pour le jvs un exemple : tu regardes près de Form_Valid()
<!-- Ce script possède un Copyright (© Dagor 2001)il est disponible pour une utilisation personnelle, par contre il est interdit sauf autorisation de l'auteur pour une utilisation commerciale. //-->
function isDate1(d) {
// Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa
// Par Romuald
if (d == "") // si la variable est vide on retourne faux
return false;
e = new RegExp("^[0-9]{2,2}\/[0-9]{2,2}\/[0-9]{4}$");
if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
return false; // Si pas bon, retourne faux
// On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
j = parseInt(d.split("/")[0], 10); // jour
m = parseInt(d.split("/")[1], 10); // mois
a = parseInt(d.split("/")[2], 10); // année
cejour = new Date();
j1 = cejour.getDate();
m1 = cejour.getMonth();
a1 = cejour.getFullYear();
nbjours1 = j1+(m1*30)+((a1-1)*365)+30;
nbjour = j+(m*30)+((a-1)*365);
if (nbjours1 > nbjour) {
return ( m < 1 && m >24);
}
if ((nbjours1 +182) < nbjour) {
return ( m < 1 && m >24);
}
// Si l'année n'est composée que de 2 chiffres on complète automatiquement
if (a < 1000) {
if (a < 89) a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
else a+=1900;
}
// Définition du dernier jour de février
// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
else fev = 28;
// Nombre de jours pour chaque mois
nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);
// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] && a >= 2002);
}
function isHeure1(d) {
// Cette fonction permet de vérifier la validité d'une heure au format hh:mm
// Par YD
if (d == "") // si la variable est vide on retourne faux
return false;
e = new RegExp("^[0-9]{2,2}:[0-9]{2,2}$");
if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
return false; // Si pas bon, retourne faux
// On sépare l'heure en 2 variables pour vérification, parseInt() converti du texte en entier
h = parseInt(d.split(":")[0], 10); // heure
m = parseInt(d.split(":")[1], 10); // mn
// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
return ( h >= 9 && h <=17 && m >= 0 && m <= 59 );
}
function Form_Valid(Form)
{
if (Form.nom.value == "")
{
alert("Tapez une valeur dans la zone \"Nom\".");
Form.nom.focus();
return (false);
}
if (Form.nom.value.length < 3)
{
alert("Tapez au moins 3 caractères dans la zone \"Nom\".");
Form.nom.focus();
return (false);
}
var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz \t\r\n\f";
var checkStr = Form.nom.value;
var allValid = true;
var validGroups = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("Ne tapez que des lettres et des espacess dans la zone \"Nom\".");
Form.nom.focus();
return (false);
}
if (Form.prenom.value == "")
{
alert("Tapez une valeur dans la zone \"Prénom\".");
Form.prenom.focus();
return (false);
}
if (Form.prenom.value.length < 3)
{
alert("Tapez au moins 3 caractères dans la zone \"Prénom\".");
Form.prenom.focus();
return (false);
}
var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz \t\r\n\f";
var checkStr = Form.prenom.value;
var allValid = true;
var validGroups = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("Ne tapez que des lettres et des espaces dans la zone \"Prénom\".");
Form.prenom.focus();
return (false);
}
if (Form.telephone.value == "")
{
alert("Tapez une valeur dans la zone \"N° de téléphone\".");
Form.telephone.focus();
return (false);
}
if (Form.telephone.value.length < 10)
{
alert("Tapez au moins 10 caractères dans la zone \"N° de téléphone\".");
Form.telephone.focus();
return (false);
}
var checkOK = "0123456789-.,";
var checkStr = Form.telephone.value;
var allValid = true;
var validGroups = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("Ne tapez que des chiffres ou caractères \".\" dans la zone \"N° de téléphone\".");
Form.telephone.focus();
return (false);
}
var dd = Form.date1.value;
if (!isDate1(dd))
{
alert("La date du premier rendez-vous est érronée \n(forme : jj/mm/aaaa exemple : 03/12/2008)");
Form.date1.focus();
return (false);
}
var dd = Form.heure1.value;
if (!isHeure1(dd))
{
alert("L'heure du premier rendez-vous est érronée\n (forme : hh:mm exemple : 09:45) \n validité de 09h00 à 17h59)");
Form.heure1.focus();
return (false);
}
if (Form.date2.value == "")
{
Form.date2.focus();
return(true);
}
else
{
var dd = Form.date2.value;
if (!isDate1(dd))
{
alert("La date du deuxième rendez-vous est érronée \n(forme : jj/mm/aaaa exemple : 03/12/2008)");
Form.date2.focus();
return (false);
}
}
if (Form.heure2.value == "")
{
if (Form.date2.value == "")
{
Form.heure2.focus();
return(true);
}
else
{
var dd = Form.heure2.value;
if (!isHeure1(dd))
{
alert("L'heure du deuxième rendez-vous est érronée\n (forme : hh:mm exemple : 09:45) \n validité de 09h00 à 17h59)");
Form.heure2.focus();
return (false);
}
}
}
if (Form.date3.value == "")
{
Form.date3.focus();
return(true);
}
else
{
var dd = Form.date3.value;
if (!isDate1(dd))
{
alert("La date du troisième rendez-vous est érronée \n(forme : jj/mm/aaaa exemple : 03/12/2008)");
Form.date3.focus();
return (false);
}
}
if (Form.heure3.value == "")
{
if (Form.date3.value == "")
{
Form.heure3.focus();
return(true);
}
else
{
var dd = Form.heure3.value;
if (!isHeure1(dd))
{
alert("L'heure du troisième rendez-vous est érronée\n (forme : hh:mm exemple : 09:45) \n validité de 09h00 à 17h59)");
Form.heure3.focus();
return (false);
}
}
}
return (true);
}
--Bon courage !