Script JS incompatible avec firefox.
Bonjour, je planche depuis plusieurs jours sur un problème que je n'arrive pas à résoudre.
J'ai écrit un script qui fait des appels via AJAX, pour envoyer plusieurs formulaires. Sous IE ça passe, mais sous Firefox, j'obtiens toujours la même erreur :
la fonction qui pose problème est celle-ci :
Code:
1 2 3 4 5 6 7 8
| function checkForm(form){
var i;
var done=0;
for (i=0;i<form.length;i++)//l'erreur se situe ici
if (!form.elements[i].value) done++;
if (done==0) return true;
else return false;
} |
Cette fonction est appelée par celle-ci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| function addCat(){
var form = document.getElementById("admCat");
var resp = document.getElementById("admCatResp");
var xhr= init();
xhr.open("POST","server/admAddCat.php",true);
if(checkForm(form)) {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(getFormData(form));
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.responseXML.getElementsByTagName("Status")[0].text == "Add"){
var id = xhr.responseXML.getElementsByTagName('Id')[0].text;
var name = xhr.responseXML.getElementByTagName('Name')[0].text;
new_element = new Option(name,id);
form.cbIdCat.options[form.cbIdCat.length] = new_element;
resp.innerHTML = "Catégorie n° "+xhr.responseXML.getElementsByTagName('Id')[0].text+" ajoutée";
}
else if (xhr.responseXML.getElementsByTagName("Status")[0].text == "Update")
resp.innerHTML = "Catégorie n°"+xhr.responseXML.getElementsByTagName('Id')[0].text+" modifiée";
}
else resp.innerHTML= treatmentError;
form.reset();
}
}
else resp.innerHTML = errorMsg;
} |
Pouvez-vous me dire ce qui ne vas pas ?
Merci d'avance,