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

jQuery Discussion :

[Prototype/JQuery] Appliquer jvs sur du contenu envoyé en ajax


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par défaut [Prototype/JQuery] Appliquer jvs sur du contenu envoyé en ajax
    Bonjour,
    Intro :
    Lorsque le surfer clique sur : "s'inscrire", une fonction POST d'AJAX insère un formulaire par innerHTML (je sais cette fonction n'est pas conforme au w3c mais bon...).
    Jusque là tout est Ok.
    Le problème :
    Le javascript qui doit tester la saisie des champs du questionnaire ne s'applique pas au formulaire ainsi envoyé alors qu'il fonctionne sur une formulaire chargé hors AJAX
    Le constat :
    Tout se passe comme si le javascript ne s'appliquait qu'au code html chargé en amont.
    Si vous avez un tourne autour...
    MERCI !!!
    JL

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par défaut Suite...
    Rebonjour,
    J'utiliserais bien la fonction eval() pour que le javascript renvoyé par le serveur s'applique.
    Mais le serveur renvoie aussi du bête html...
    eval() vos semble être une bonne piste ?
    Merci à tous
    JL

  3. #3
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    (je sais cette fonction n'est pas conforme au w3c mais bon...)
    C'est pas qu'elle n'est pas conforme au w3c, c'est qu'elle ajoute mal le contenu au DOM de la page. Ce qui provoque typiquement l'erreur que tu subies.

    La solution c'est d'utiliser les méthodes du DOM pour ajouter proprement ton contenu.

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par défaut
    Arghh !
    Merci de la réponse.
    Bon je vais fabriquer du code générique pour utiliser les fonctions du DOM :
    J'avoue les trouver un peu 'verbeuse' mais si cela doit aider : au boulot.
    Merci encore
    JL

    PS : tu es sûr que innerHTML est bien la cause ?

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par défaut
    Bonjour,
    J'ai essayé les méthodes du DOM donc.
    Toutefois, je n'ai guère plus de réussite.
    Les balises <scripts> sont bien insérées dans le DOM mais les scripts restent inactifs.
    D'autre part, les formulaires insérés suite à un httprequest s'affichent bien (CSS ok...) mais les fonctions de test javascript ne s'appliquent pas.
    Elles sont pourtant bien chargées onload et évidemment leurs références figurent dans le header.
    Faut-il donc appeler ses fonctions par un eval() ?
    Merci beaucoup
    JL

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par défaut SOLUTION
    Bonjour,
    Voici donc la solution au problème.
    Je l'apporte pour ceux qui rencontrerons le même problème à l'avenir :
    1. La commande innerHTML n'est pas en cause même s'il est vrai que les commandes du DOM sont préférables.
    2. La fonction eval() est un commencement de solution.
    3. Toutefois utilisée ainsi elle n'est efficace que dans le contexte d'exécution du script téléchargé via XMLHttprequest.
      Pour une application globale voici un lien fort utile à mon sens : http://www.xorax.info/blog/programma...al-global.html
    4. En dernier lieu, cette fontion eval() pose des problèmes de sécurité (exécution de scripts malveillants). Il peut donc être préférable d'utiliser les fonctions d'un framework AJAX de type prototype ou jQuery ou même la bibliothèque externe json.js avec la fonction parseJSON().

    Merci à tous de votre aide.
    En espérant avoir aidé à mon tour.
    JL

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

Discussions similaires

  1. Probleme sur un formulaire envoyé en ajax
    Par john anderta dans le forum jQuery
    Réponses: 2
    Dernier message: 09/08/2011, 11h45
  2. Réponses: 2
    Dernier message: 28/10/2010, 10h30
  3. Réponses: 9
    Dernier message: 05/03/2010, 17h38
  4. Réponses: 2
    Dernier message: 21/09/2009, 03h51
  5. Appliquer une procédure stockée sur le contenu d'une table
    Par teks9 dans le forum Développement
    Réponses: 5
    Dernier message: 09/09/2008, 13h40

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