J'essaie de déclencher par programme (avec jQuery) un clic sur le bouton avec un comportement AJAX sous une forme Drupal, mais jusqu'à présent jQuery('#edit-submit').click()
ne fait rien.
Un vrai clic de souris sur ce bouton fonctionne comme prévu. Des idées sur la façon de le faire fonctionner?
7
ajax
javascript
Daniel
la source
la source
Réponses:
jQuery('#edit-submit').mousedown()
- apparemment, il y a une grande différence.la source
mousedown()
n'est que "la première partie" d'unclick()
événement, qui est terminée lorsqu'ellemouseup()
se produit. Lorsque vous cliquez sur un lien, puis que vous relâchez la souris en dehors de la zone du lien, leclick()
n'est généralement pas renvoyé et le lien n'est pas suivi. Un appel ajax empêche probablementmouseup()
d'être renvoyé, mais ce n'est qu'une supposition ...En fait, il n'est pas nécessaire de deviner.
Vous devez utiliser des comportements Drupal
Cela vous donnera accès à la propriété ajax des paramètres,
Selon votre configuration, vous devriez voir une liste d'éléments déclencheurs, avec diverses propriétés telles que le nom de la fonction de rappel, l'ID du sélecteur ainsi que le nom de l'événement déclencheur.
Vous pouvez ensuite utiliser les informations pertinentes pour déclencher votre événement.
la source
Créez un envoi ajax comme suit.
Ensuite, l'événement jquery .click () fonctionnerait sous la forme drupal ajax.
la source
Vous pouvez également utiliser la
.trigger()
méthode jQuery.$('#element').trigger('click');
la source
Dans mon cas, les solutions recommandées ci-dessus n'ont pas fonctionné pour moi, mais la mention de .mousedown () a conduit à l'idée suivante qui a fonctionné pour moi (Drupal 7):
Il y a quelques informations utiles sur "pourquoi" c'est le cas dans la référence API de formulaire sous #ajax_prevent
la source
En regardant le module Filtres mieux exposés, ils soumettent le formulaire AJAX en trouvant $ (. Ctools-auto-submit-click ') et en déclenchant un clic.
la source
Vous devez déclencher l'
submit
événement sur le formulaire.Click
et lesmousedown
événements sur les boutons ne fonctionnent pas.la source