Estoy tratando de activar mediante programación (con jQuery) un clic en un botón con comportamiento AJAX en forma de Drupal, pero hasta ahora jQuery('#edit-submit').click()
no hace nada.
Un clic real del mouse en ese botón funciona según lo previsto. ¿Alguna idea de cómo hacer que funcione?
7
ajax
javascript
Daniel
fuente
fuente
Respuestas:
jQuery('#edit-submit').mousedown()
Aparentemente hay una gran diferencia.fuente
mousedown()
es solo "la primera parte" de unclick()
evento, que se completa cuandomouseup()
ocurre. Cuando hace clic en un enlace y luego suelta el mouse fuera del área del enlace,click()
generalmente no se dispara y no se sigue el enlace. Probablemente una llamada ajax impide que elmouseup()
ser despedido, pero esto es sólo una suposición ...En realidad, no hay necesidad de adivinar.
Debes usar los comportamientos de Drupal
Esto le dará acceso a la propiedad ajax de la configuración,
Dependiendo de su configuración, debería ver una lista de elementos desencadenantes, con varias propiedades, como el nombre de la función de devolución de llamada, la identificación del selector y el nombre del evento desencadenante.
Luego puede usar la información relevante para activar su evento.
fuente
Crear envío ajax como el siguiente.
Entonces el evento jquery .click () funcionaría en la forma drupal ajax.
fuente
También puede usar el
.trigger()
método jQuery.$('#element').trigger('click');
fuente
En mi caso, las soluciones recomendadas anteriormente no funcionaron para mí, pero la mención de .mousedown () me llevó a la siguiente idea que funcionó para mí (Drupal 7):
Hay información de fondo útil sobre "por qué", este es el caso en la Referencia de API de formulario en #ajax_prevent
fuente
Mirando el módulo de Mejores filtros expuestos, envían el formulario AJAX encontrando $ (. Ctools-auto-submit-click ') y activando un clic.
fuente
Tienes que activar el
submit
evento en el formulario.Click
y losmousedown
eventos en los botones no funcionan.fuente