Saya mencoba secara terprogram (dengan jQuery) memicu klik pada tombol dengan perilaku AJAX dalam bentuk Drupal, tetapi sejauh jQuery('#edit-submit').click()
ini tidak melakukan apa-apa.
Sebuah tikus nyata klik pada tombol yang bekerja sebagaimana dimaksud. Ada ide bagaimana membuatnya bekerja?
7
ajax
javascript
Daniel
sumber
sumber
Jawaban:
jQuery('#edit-submit').mousedown()
- rupanya ada perbedaan besar.sumber
mousedown()
hanyalah "bagian pertama" dari sebuahclick()
acara, yang selesai ketikamouseup()
terjadi. Ketika Anda mengklik tautan dan kemudian Anda melepaskan mouse di luar area tautan,click()
biasanya tidak dipecat dan tautan tersebut tidak diikuti. Mungkin panggilan ajax mencegahmouseup()
dipecat, tapi ini hanya dugaan ...Sebenarnya, tidak perlu menebak.
Anda harus menggunakan perilaku Drupal
Ini akan memberi Anda akses ke properti ajax pengaturan,
Bergantung pada konfigurasi Anda, Anda akan melihat daftar elemen pemicu, dengan berbagai properti seperti nama fungsi panggil balik, id pemilih serta nama peristiwa pemicu.
Anda kemudian dapat menggunakan informasi yang relevan untuk memicu acara Anda.
sumber
Buat ajax kirim seperti berikut ini.
Maka acara jquery .click () akan berfungsi dalam bentuk drupal ajax.
sumber
Anda juga dapat menggunakan
.trigger()
metode jQuery.$('#element').trigger('click');
sumber
Dalam kasus saya, solusi yang direkomendasikan di atas tidak bekerja untuk saya, tetapi penyebutan .mousedown () mengarah pada ide berikut yang bekerja untuk saya (Drupal 7):
Ada beberapa info latar belakang yang bermanfaat tentang "mengapa" hal ini terjadi dalam Formulir API Referensi di bawah #ajax_prevent
sumber
Melihat modul Better Exposed Filter, mereka mengirimkan formulir AJAX dengan menemukan $ (. Ctools-auto-submit-click ') dan memicu klik.
sumber
Anda harus memicu
submit
acara di formulir.Click
danmousedown
acara pada tombol tidak berfungsi.sumber