IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Script JS incompatible avec firefox.


Sujet :

JavaScript

  1. #1
    Membre expérimenté

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Par défaut 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 :
    Erreur : form has no properties
    Fichier source : http://127.0.0.1/Test/myth.js
    Ligne : 7
    la fonction qui pose problème est celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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&eacute;gorie n° "+xhr.responseXML.getElementsByTagName('Id')[0].text+" ajout&eacute;e";
    				}
    				else if (xhr.responseXML.getElementsByTagName("Status")[0].text == "Update")
    					resp.innerHTML = "Cat&eacute;gorie n°"+xhr.responseXML.getElementsByTagName('Id')[0].text+" modifi&eacute;e";
    			}
    			else resp.innerHTML= treatmentError;
    			form.reset();
    		}
    	}
    	else resp.innerHTML = errorMsg;
    }
    Pouvez-vous me dire ce qui ne vas pas ?
    Merci d'avance,

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    elle fait quoi la focntion init() je suppose qu'elle initialise ajax ... mais le fait elle correctement pour IE et FIREFOX ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre expérimenté

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Par défaut
    Oups, pardon
    A force de voir toujours les même lignes de code, je ne fais plus attention.
    Oui, init() initialise ajax. Elle est correcte, puisque l'objet est créé. C'est juste sur le formulaire que ça coince
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function init(){
        var xhr = null; 
        if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); 
        else if(window.ActiveXObject) xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
        else alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");   
        return xhr; 
    }

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ça m'a pourtant l'air correct ...

    essaye evc ce bout de code ci qui est éprouvé ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        switch ( true ) {    
                        case (!!window.XMLHttpRequest):
                                                ReqObj=new XMLHttpRequest();
                                                break;
     
                        case  (!!window.ActiveXObject):
                                                ReqObj=new ActiveXObject("Microsoft.XMLHTTP");
                                                break;
     
                        default :                            alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
                          }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre expérimenté

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Par défaut
    Merci, mais en essayant, le problème de change pas. Mon objet xhr est bien créé.
    En fait, l'erreur proviendrait du formulaire. En faisant un alert dans ma fonction checkForm() (alert(form)), je remarque que sous IE, il renvoie un objet, mais sous Firefox, il renvoie NULL. Je comprends pas pourquoi

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    elle est lancée ou la focntion checkform() tu passes quoi en paramètre ? this.form ou document.forms[0] ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre expérimenté

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Par défaut
    CheckForm est appelée dans la fonction AddCat (ligne 6 de la fonction AddCat)
    elle reçoit en paramètre le formulaire. Ce formulaire est récupéré via document.getElementById('AdmCat');

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    arf dsl pas vu ...
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var monform = document.forms[0];
    puis

    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre expérimenté

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Par défaut
    Ah ben merci, ça marche !!
    Mais je me demande pourquoi la méthode document.getElementById ne fonctionne pas. J'ai lu que c'était la meilleure méthode à utiliser, pourtant...

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ben il reconnait pas que c'est form avec l'id ... encore une curiosté ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre expérimenté

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Par défaut
    Ok, merci beaucoup de ton aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Menu déroulant JavaScript incompatible avec FireFox
    Par moti45 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/03/2009, 00h36
  2. script fonctionne avec Firefox mais boucle sous IE6
    Par ignitionflip dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/01/2009, 16h10
  3. comment rendre compatible ce script avec firefox ?
    Par xav20 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 31/07/2007, 18h35
  4. Script incompatible avec Firefox, le retour !
    Par Raylemon dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/05/2006, 22h26
  5. [FLASH 8] Script popup incompatible avec flash8
    Par cosmicgab dans le forum Flash
    Réponses: 4
    Dernier message: 12/05/2006, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo