Bonjour,

Voila je rencontre un petit problème avec mon code.

J'utilise la fontion jquery load() pour charger un formulaire dans une fragment de ma page.
mais, tout le code js à la fin de la page ne s'applique pas au formulaire (exemple la datepicker).
Pourriez vous m'aidez s'il vous plait?

$(document).on('click', '.addtask', function(){
        var id=$(this).parent().parent().attr('class');

        $( "."+id ).load( moformulaire.html );
    });

4 réponses


Bonjour.

mais, tout le code js à la fin de la page ne s'applique pas au formulaire (exemple la datepicker).

C'est tout à fait normal puisque le contenu que tu charges avec la fonction load ne peut avoir aucun évènement Javascript attaché puisqu'il n'était pas présent lorsque la page HTML à été chargé.
Il te faut rattacher les évènements à ton contenu une fois que tu as utilisé la fonction load et que le contenu a fini de chargé.
Par exemple :

$(document).on('click',  '.addtask', function() {
    var id = $(this).parent().parent().attr('class');
    $( "." + id ).load('formulaire.html', function() {
        $('.datepicker').datepicker();
    });
});
timri
Auteur

Merci beaucoup @Lartak. Ta réponse resoud un problème pontuel. De manière plus générale, Pourrais tu me dire comment faire pour appliquer dynamiquement tous mes js en fin de page à l'élement DOM chargé?

À moins que tu places toutes tes initialisations d'évènements javascript dans une fonction et que tu y fasse appel lorsque tu charges du contenu en Javascript, sinon il te faut les réinitialiser un par un.
Ou alors, au lieu d'utiliser le sélecteur document en premier argument de tes évènements utilisants la méthode on, cibles plutôt un élément plus restreint.
Par contre, en général tu n'as pas besoin de réinitialiser tous les évènements Javascript lorsque tu modifies du contenu dans une page en javascript, si on prend pour exemple le plugin datepicker, il ne sert que pour les formulaires, il serait donc inutile de vouloir le rattacher a un chargement d'un simple texte.
Par conséquent, vouloir recharger tous tes javascripts à chaque changement de contenu fais en Javascript serait totalement excessif.

timri
Auteur

Merci, Dans mon cas, il s'agira ensuite de soumettre le formulaire en ajax, dont je dois au moins dans ce cas recharger le jquery et l'évenement submit.....?