Euh... ne tiens pas compte de ma nullité, j'avais juste essayé de m'inspirer d'exemples existants...
En fait, il est nécessaire que la fonction permette au fichier js de contrôler tous les champs souhaités, puis une fois la tâche finie, de valider le formulaire via un <a href="">valider</a>
Si ça peut t'aider, voici ci-dessous le fichier js, lié à la page :
@+
// form validation function //
function validate(form) {
var objet = form.objet.value;
var societe = form.societe.value;
var societeRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
var contact = form.contact.value;
var contactRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
var telephone = form.telephone.value;
var telephoneRegex = /^0[1-689]([-. ]?[0-9]{2}){4}$/;
var email = form.email.value;
var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
var message = form.message.value;
var messageRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);
if(objet == "") {
inlineMsg('objet','Quelle est la nature de votre message ?',0);
return false;
}
if(societe == "") {
inlineMsg('societe','Quel est le nom de votre société ?',0);
return false;
}
if(!societe.match(societeRegex)) {
inlineMsg('societe','Merci de vérifier le nom de votre société...',0);
return false;
}
if(contact == "") {
inlineMsg('contact','Qui contacter si besoin ?',0);
return false;
}
if(!contact.match(contactRegex)) {
inlineMsg('contact','Merci de vérifier vos informations...',0);
return false;
}
if(telephone == "") {
inlineMsg('telephone','Quel est votre numéro de téléphone ?',0);
return false;
}
if(!telephone.match(telephoneRegex)) {
inlineMsg('telephone','Merci de vérifier votre numéro de téléphone...',0);
return false;
}
if(email == "") {
inlineMsg('email','Quelle est votre adresse email ?',0);
return false;
}
if(!email.match(emailRegex)) {
inlineMsg('email','Merci de vérifier votre adresse email...',0);
return false;
}
if(message == "") {
inlineMsg('message','Quel est votre message ?',0);
return false;
}
if(message.match(messageRegex)) {
inlineMsg('message','Merci de vérifier votre message...',0);
return false;
}
return true;
}
// START OF MESSAGE SCRIPT //
var MSGTIMER = 20;
var MSGSPEED = 20;
var MSGOFFSET = 3;
var MSGHIDE = 3;
// build out the divs, set attributes and call the fade function //
function inlineMsg(target,string,autohide) {
var msg;
var msgcontent;
if(!document.getElementById('msg')) {
msg = document.createElement('div');
msg.id = 'msg';
msgcontent = document.createElement('div');
msgcontent.id = 'msgcontent';
document.body.appendChild(msg);
msg.appendChild(msgcontent);
msg.style.filter = 'alpha(opacity=0)';
msg.style.opacity = 0;
msg.alpha = 0;
} else {
msg = document.getElementById('msg');
msgcontent = document.getElementById('msgcontent');
}
msgcontent.innerHTML = string;
msg.style.display = 'block';
var msgheight = msg.offsetHeight;
var targetdiv = document.getElementById(target);
targetdiv.focus();
var targetheight = targetdiv.offsetHeight;
var targetwidth = targetdiv.offsetWidth;
var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
msg.style.top = topposition + 'px';
msg.style.left = leftposition + 'px';
clearInterval(msg.timer);
msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
if(!autohide) {
autohide = MSGHIDE;
}
window.setTimeout("hideMsg()", (autohide * 1000));
}
// hide the form alert //
function hideMsg(msg) {
var msg = document.getElementById('msg');
if(!msg.timer) {
msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
}
}
// face the message box //
function fadeMsg(flag) {
if(flag == null) {
flag = 1;
}
var msg = document.getElementById('msg');
var value;
if(flag == 1) {
value = msg.alpha + MSGSPEED;
} else {
value = msg.alpha - MSGSPEED;
}
msg.alpha = value;
msg.style.opacity = (value / 100);
msg.style.filter = 'alpha(opacity=' + value + ')';
if(value >= 99) {
clearInterval(msg.timer);
msg.timer = null;
} else if(value <= 1) {
msg.style.display = "none";
clearInterval(msg.timer);
}
}
// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
var left = -286;
if(target.offsetParent) {
while(1) {
left += target.offsetLeft;
if(!target.offsetParent) {
break;
}
target = target.offsetParent;
}
} else if(target.x) {
left += target.x;
}
return left;
}
// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
var top = 0;
if(target.offsetParent) {
while(1) {
top += target.offsetTop;
if(!target.offsetParent) {
break;
}
target = target.offsetParent;
}
} else if(target.y) {
top += target.y;
}
return top;
}
// preload the arrow //
if(document.images) {
arrow = new Image(7,80);
arrow.src = "images/msg_arrow.gif";
}