11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous.

Je suis en train de réaliser mon premier site Internet possédant la librairie jQuery. Et je me heurte à un assez gros problème. Lors du chargement des différentes pages, tout se passe pour le mieux, je fait une requête $.ajax qui ensuite envoi le contenu des pages chargées dans un div. Rien d'anormal.

Cependant, j'ai une grosse difficulté depuis quelques jours que je n'arrive pas à palier. J'ai une page de contact avec un formulaire qui est chargée par la méthode $.ajax (vue précédemment). Cependant, je n'arrive pas à valider ce formulaire contenu dans cette page à l'aide de jQuery, il rafraichit en entier toute la page.

J'ai regardé ce qu'il se passait au point de vue des entêtes HTTP et comme je me doutais, jQuery ne fait rien, c'est le HTML du fomulaire qui fait tout (car les nouveaux id ne sont pas "vus" par jQuery donc il n'y a aucun évènement).

Donc j'aimerai savoir comment réaliser des évènements sur des balises qui sont chargées à partir d'une méthode $.ajax.

Merci d'avance.
Modifié par FelixAime (19 Jun 2009 - 16:46)
Hello,

Regarde du coté des callbacks (success, complete, error) de l'objet accepté par $.ajax(), tu pourra y définir des fonctions à appliquer une fois ta requete terminée, comme par exemple y lier un .submit() sur ton form.

jQuery possède une méthode .live() qui permet de binder des événements même sur des éléments qui seront ajoutés ultérieurement sur la page. Malheureusement, elle ne fonctionne pas pour submit, tu dois donc rebinder ces événements manuellement.
Modifié par Tymlis (19 Jun 2009 - 15:34)
Ok, je regarde cela ce soir et je vous fait un feedback.

Merci beaucoup.

Edit : J'avais testé de mettre la fonction jquery lors du success, avant le chargement de la page ex :

success:function(html) {
			   afficher(html);
				$("#test").click(function() {
					alert("lol!");
				});
		   },


Mais cela ne fonctionnait pas (le lien ayant l'id "test" étant à l'intérieur de la page chargée par la "méthode" $.ajax.)
Modifié par FelixAime (19 Jun 2009 - 15:44)
C'est bon, cela fonctionne (enfin pour le lien avec la méthode live) !

Merci encore, je met le topic en résolu !