Eu estou tentando programaticamente (com jQuery) acionar um clique no botão com comportamento AJAX em um formulário Drupal, mas até agora jQuery('#edit-submit').click()
não faz nada.
Um clique real do mouse nesse botão funciona conforme o esperado. Alguma idéia de como fazê-lo funcionar?
7
ajax
javascript
Daniel
fonte
fonte
Respostas:
jQuery('#edit-submit').mousedown()
- aparentemente há uma grande diferença.fonte
mousedown()
é apenas "a primeira parte" de umclick()
evento, que fica completa quandomouseup()
ocorre. Quando você clica em um link e solta o mouse fora da área do link,click()
ele geralmente não é acionado e o link não é seguido. Provavelmente uma chamada ajax impede amouseup()
ser demitido, mas isso é apenas um palpite ...Na verdade, não há necessidade de adivinhar.
Você deve usar comportamentos Drupal
Isso lhe dará acesso à propriedade ajax das configurações,
Dependendo da sua configuração, você deverá ver uma lista de elementos acionadores, com várias propriedades, como o nome da função de retorno de chamada, o ID do seletor e o nome do evento acionador.
Você pode usar as informações relevantes para acionar seu evento.
fonte
Crie o envio do ajax como a seguir.
Em seguida, o evento jquery .click () funcionaria no formato drupal ajax.
fonte
Você também pode usar o
.trigger()
método jQuery.$('#element').trigger('click');
fonte
No meu caso, as soluções recomendadas acima não funcionaram para mim, mas a menção de .mousedown () levou à seguinte idéia que funcionou para mim (Drupal 7):
Há algumas informações úteis sobre "por que" esse é o caso na Referência da API do formulário em #ajax_prevent
fonte
Observando o módulo Better Exposed Filters, eles enviam o formulário AJAX localizando $ (.ctools-auto-submit-click ') e acionando um clique.
fonte
Você precisa acionar o
submit
evento no formulário.Click
emousedown
eventos nos botões não estão funcionando.fonte