Bonjour à tous
J'essaye désespérement de résoudre ce problème. Le script doit si possible envoyer le formulaire via XMLHttpRequest, ou sinon valider le formulaire.
J'apelle une fonction dans le onsubmit du formulaire. Ca fonctionne sous tous les navigateurs sauf IE 6 et 7. Le navigateur me dit "Erreur d'exécution inconnue".
Ce n'est pas dramatique car le formulaire est quand même envoyé, mais pas comme je voulais.
Voila ma fonction :
function envoiContact (frm) {
var verif = true;
var re_mail = /^[\w\.-]+@[\w\.-]+\.\w+$/i;
with (frm) {
//Initialisations
nom.className = 'OK';
prenom.className = 'OK';
mail.className = 'OK';
pays.className = 'OK';
message.className = 'OK';
//Vérifications
if (nom.value == '') {
verif &= false;
nom.className = 'Erreur';
}
if (prenom.value == '') {
verif &= false;
prenom.className = 'Erreur';
}
if (!re_mail.test (mail.value)) {
verif &= false;
mail.className = 'Erreur';
}
if (pays.value == '') {
verif &= false;
pays.className = 'Erreur';
}
if (message.value == '') {
verif &= false;
message.className = 'Erreur';
}
}
if (verif) {
//Préparation des valeurs à envoyer
var c, n, p, m, pa, q, msg;
if (frm.contact0.checked) c = 0;
else c = 1;
n = escape (frm.nom.value);
p = escape (frm.prenom.value);
m = escape (frm.mail.value);
pa = escape (frm.pays.value);
q = frm.qualite.value;
msg = escape (frm.message.value);
document.getElementById ('Message').innerHTML = '<img src="images/loader.gif" alt="Envoi en cours..." /> Envoi en cours...';
var xhr;
if (window.XMLHttpRequest) xhr = new XMLHttpRequest ();
else if (window.ActiveXObject)xhr = new ActiveXObject ('Microsoft.XMLHTTP');
else return true;
xhr.open ('POST', 'inc/envoimail.php', true);
xhr.setRequestHeader ('Content-Type','application/x-www-form-urlencoded');
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
document.getElementById ("Message").innerHTML = xhr.responseText;
} else {
document.getElementById ("Message").innerHTML = "Une erreur est survenue lors de l'envoi. Veuillez essayer à nouveau.";
}
}
}
xhr.send ('&contact=' + c.toString () + '&nom=' + n + '&prenom=' + p + '&mail=' + m + '&pays=' + pa + '&qualite=' + q + '&message=' + msg + '&methode=1');
}
return false;
}
L'erreur est paaprament dans if (verif) {...} mais je n'arrive pas à determiner où.
Si quelqu'un à une idée.
Merci d'avance