11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour !

J'ai un formulaire qui se charge avec de l'ajax (avec jQuery) lorsqu'on clique sur un bouton.
Dans ce formulaire (qui est vierge si c'est un ajout, mais qui contient des données si c'est une modif), j'ai un champ texte pour une date qui contient un bon vieux class="datepicker" (cela fonctionne bien par ailleurs). Mais mon calendrier n'apparaît pas.

Ma question est donc la suivante:
y a-t-il incompatibilité entre le fait que le formulaire qui se charge via ajax et datepicker (jQuery UI) ?
Modifié par mediaprodx (07 Feb 2012 - 22:36)
Bonjour,

Je suis débutant aussi en Jquery mais bon, on sait jamais !

Pourrais tu envoyer les bouts de code où sont présents l'appel de la page et le formulaire en question ?
Pas incompatible, juste ton formulaire n'étant pas dans le DOM, il ne pouvait pas le faire fonctionner avant.

Il te faut donc relancer "l'analyse JS" après ton chargement ajax. Tu peux par exemple simplement remettre le code que tu as mis précédemment dans le success() d'ajax.
OK, si tu veux:

Le HTML:
<img src="../images/Add_16x16.png" alt="ajouter une action pour cette entreprise" id="addaction_btn" onclick="javascript: ouvre_actionform(0);" />
<div id="addaction_form"></div>


Le jQuery:
function ouvre_actionform (id)
{
	$('#addaction_form').toggle('fast');
    // on envoie la valeur recherché en GET au fichier de traitement
    $.ajax({
  	type : 'GET', // envoi des données en GET
	url : 'addaction_form.php' , // url du fichier de traitement
	data : 'id=' + escape(id) , // données à envoyer
	beforeSend : function() { // traitements JS à faire AVANT l'envoi
		$('#addaction_form').after('<img src="../images/loading.gif" alt="loader" id="ajax-loader-action" />'); // ajout d'un loader pour signifier l'action
	},
	success : function(data){ // traitements JS à faire APRES le retour de l'url
		$('#ajax-loader-action').remove(); // on enleve le loader
		$('#addaction_form').html(data); // affichage des résultats dans le bloc
	}
	}); // fin ajax
} // fin function


Et dans le fichier qui renvoie le formulaire (addaction_form.php), le PHP renvoie un
<input type="text" class="datepicker" name="datlimite_action" value="" />
@kenor: Effectivement, c'est logique. Mais quel code souhaites-tu placer dans le success() ?
Modifié par mediaprodx (07 Feb 2012 - 17:49)
En gros


success : function(data) {
  obj.html(data); // t'ajoutes ton formulaire au DOM
  obj.datepicker(); // tu relances datepicker pour qu'il trouve ton champ date et l'interprete
}