7
votes

JQuery est indéfini dans la vue partielle chargée via Ajax dans IE

J'ai une page Web composée d'un widget d'onglets UI JQuery UI. Onglet Widget charge les onglets via AJAX. Dans l'une des pages à tabulation (Nom It DescriptionPage Strard>), j'ai un formulaire qui sera soumis via Ajaxform Plugin. XXX PRE>

Ceci est contenu de mon DescriptionPage strong>. P>

<form id="myForm">
  <!-- Form elements goes here -->
</form>

<script>
  $(function(){
    $('#myForm').ajaxForm(function (response) {
      $('#myForm').parent().empty().append(response);
    });
  });
</script>


9 commentaires

Cela ne résout pas le problème, mais vous pouvez utiliser $ ('# myform'). Parent (). HTML (réponse);


Intéressant que l'erreur dit "jQuery", puisque le code que vous avez collé ici n'utilise pas la variable "jQuery" du tout. Cela vous dit-il quel fichier et ligne l'erreur se produit?


Merci pour la réponse de réponse. Dans IE, il y a des bugs que prenvet utilisez HTML (réponse), c'est pourquoi j'ai utilisé de manière vide () et appendez () séquentiellement.


Le code que j'ai collé est une version très simplifiée de mes pages, je ne veux pas vous déranger avec des milliers de loc. Mais je suis à peu près sûr que la jQuery est indéfinie dans le script de vue partielle chargée (outils de débogage JS).


Une technique de débogage que j'utilise est de prendre une version simplifiée du code, comme ce que vous avez collé ci-dessus et de tester avec elle. Avez-vous déjà essayé ça?


Est le fichier jquery.form.js en cours de chargement à partir de la page des onglets ou de la descriptionPage? S'il est chargé à partir de la descriptionPage, avez-vous essayé de charger à partir de la page des onglets à la place? Il peut être nécessaire de charger de la même page qui charge jQuery.


Tous les fichiers de la bibliothèque (JQuery, JQuery UI, JQuery Forms, etc.) sont inclus dans la page principale (qui contient également des onglets DIV).


Ma réponse n'a-t-elle pas fonctionné pour vous?


Non. J'essaie toujours de comprendre.


5 Réponses :


1
votes

Cela semble fonctionner pour moi dans Internet Explorer 6:

index.html: xxx

descriptionpage.html: xxx


0 commentaires

0
votes

Essayez quelque chose comme ça pour voir s'il résout le problème: xxx

Ce que cela devrait faire est de remplacer le contenu du formulaire existant avec le contenu de l'élément renvoyé dans la réponse. Au lieu de remplacer l'intégralité de l'élément de forme et d'exécuter JS à nouveau. Cela peut fonctionner autour de votre problème.


1 commentaires

Merci. Mais je dois à nouveau ré-exécuter des JS, pour effectuer des liaisons an, par exemple: la forme doit être liée à Ajaxform pour chaque réponse.



0
votes

Vous pouvez essayer quelque chose comme ceci: xxx

avec cette approche, vous encapsulez la $ dans la fonction et ne peut pas être gâché à partir d'autres frameworks JS (devriez-vous en utiliser). Je ne sais pas si cela fonctionnera avec IE et je ne peux pas le tester mais j'espère que ce sera :)


0 commentaires

1
votes

Veuillez vous reporter à: jQuery 1.6.1, IE9 et Script5009: '$' est indéfini

ID utilisateur "Black" a fourni la bonne direction pour moi.

Je téléchargeais en utilisant .ajaxform sur une boîte de dialogue. Après cela, je remplace ce formulaire, avec une autre ajaxform. Ensuite, j'ai eu un bug avec "$ est indéfini" ou "jQuery est indéfini" La principale raison est que j'ai appliqué "rendu: layout => false" pour la deuxième boîte de dialogue. C'est pourquoi toute la bibliothèque JS (inclure JQuery) n'a pas été chargée correctement.

Pour que, sur le partial de la deuxième boîte de dialogue, je dois ajouter.


0 commentaires

0
votes

Si vous utilisez IE, assurez-vous que vous utilisez JQuery version 1. JQuery version 2 n'est pas pris en charge par IE ... Même si tout le reste de la planète prend en charge la version 2 ....

http://jquery.com/download/


1 commentaires

Bienvenue sur Stackoverflow. Quelques suggestions: envisagez de demander à l'affiche originale de fournir plus d'informations comme la version de JQuery qu'il utilise. Aussi, s'il vous plaît soyez plus précis dans votre réponse afin qu'il soit utile à d'autres lecteurs. (Toutes les versions de IE ne parviennent pas à prendre en charge JQuery 2, ni tous les autres navigateurs le soutiennent.) Merci pour votre contribution.