Jump to content

Uncaught TypeError: Object [object Object] has no method


Recommended Posts

Bonjour, 

 

Quel est mon problème ? 

 

Contexte : 

 

J'utilise comme base "product-list.tpl" pour lister les produits de ma boutique sur ma page "d'accueil". En fait, j'ai le contenu de "product-list" contenu dans un formulaire, qui si validé, va ajouter au panier tous les produits qui ont  une quantité renseignée. 

 

Le visuel devrait aider . https://imageshack.com/i/mkwfk1j

 

Ce que je souhaite faire, à l'instar du shopping-cart.tpl, c'est surveiller ce que l'utilisateur entre dans le champs quantité. Ainsi,  si le contenu ne me plaît pas, je mettrais soit une valeur nulle, soit une valeur entrée précédemment correcte. 

 

Problème : 

 

Pour arriver à faire cela, j'ai édité un .js, qui à l'instar du cart-summary.js standard, contient la fonction jquery TypeWatch. J'ai alors ajouter à toutes les pages en dur mon .js dans le header.tpl,  en procédant comme cela : 

 

<script src=".js"></script>

 

juste après la boucle d'ajout des fichiers JS standards. 

 

Il m'ajoute bien mon fichier, mais curieusement, il ne reconnaît plus du tout la fonction TypeWatch et me plante une erreur "Uncaught TypeError: Object [object Object] has no method 'TypeWatch'" dans ma console de debug. 

 

Dans un deuxième temps, j'ai vu dans les contrôleurs que l'ajout des scripts et des css se faisait via les méthodes addCSS et addJS de Tools depuis setMedia(). Alors, j'ai placé dans le contrôleur de catégorie,  qui a, d'après ce que j'ai compris, été bidouillé, pour avoir l'affichage de mon product-list.tpl en lieu et place de ma page d'accueil, une instruction type addJS(mon js).

 

Là pas d'ajout de .js dans la console, pas d'erreurs c'est bien mais pas ce que je veux. 

 

 

Donc je voudrais bien avoir votre aide pour l'ajout et la prise en compte de mon .js 

 

 

 

Link to comment
Share on other sites

Bonjour,

TypeWatch Js est un plugin jquery (désuet).
Votre fichier .js utilisant la méthode (fonction associée à un objet) typeWatch doit être exécuté dans un contexte où ce plugin (qui se trouve en dossier prestashop/js/jquery/plugins) est lui-même exécuté. C'est le cas pour cart-summary.js mais pas pour votre fichier, à défaut d'appel.

Pour l'ajout de votre fichier .js utilisez addJS dans la function hookHeader (ou mieux, hookFooter) de votre module. Ou bien placez l'appel en dur dans votre footer.tpl. Appelez également le plugin.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...