Saya memiliki kode JS di mana ketika Anda mengubah bidang itu memanggil rutin pencarian. Masalahnya adalah bahwa saya tidak dapat menemukan peristiwa jQuery yang akan diaktifkan ketika Datepicker memperbarui bidang input.
Untuk beberapa alasan, acara perubahan tidak dipanggil saat Datepicker memperbarui bidang. Ketika kalender muncul itu mengubah fokus jadi saya tidak bisa menggunakannya juga. Ada ide?
jquery
datepicker
zbestzeus
sumber
sumber
Jawaban:
Anda dapat menggunakan datepicker ini
onSelect
acara .Contoh langsung :
Tampilkan cuplikan kode
Sayangnya,
onSelect
menyala kapan saja suatu tanggal dipilih, bahkan jika itu tidak berubah. Ini adalah cacat desain di datepicker: Selalu menyalaonSelect
(bahkan jika tidak ada yang berubah), dan tidak memecat setiap peristiwa pada input yang mendasari perubahan. (Jika Anda melihat dalam kode contoh itu, kami mendengarkan perubahan, tetapi mereka tidak dimunculkan.) Mungkin harus memunculkan suatu peristiwa pada input ketika hal-hal berubah (mungkinchange
acara biasa , atau mungkin sebuah data-klik- spesifik).Jika Anda suka, tentu saja, Anda dapat membuat
change
acara di atasinput
api:Itu akan menembak
change
pada yang mendasariinput
untuk setiap pawang yang terhubung melalui jQuery. Tapi sekali lagi, selalu memecatnya. Jika Anda hanya ingin melakukan perubahan nyata, Anda harus menyimpan nilai sebelumnya (mungkin melaluidata
) dan membandingkan.Contoh langsung :
Tampilkan cuplikan kode
sumber
change
handler (s)" dan jadi saya telah memperbarui jawabannya dengan itu. :-)Jawaban TJ Crowder ( https://stackoverflow.com/a/6471992/481154 ) sangat bagus dan masih tetap akurat. Memicu perubahan acara dalam fungsi onSelect sedekat yang akan Anda dapatkan.
Namun, ada properti bagus di objek datepicker (
lastVal
) yang akan memungkinkan Anda untuk memicu peristiwa perubahan hanya pada perubahan aktual tanpa harus menyimpan nilai sendiri:Maka hanya menangani perubahan acara seperti biasa:
sumber
lastVal
adalah ;-)lastVal
tidak ada pada objek datepicker, setidaknya dalam pengujian saya. Jadi solusi ini akan selalu memicu perubahan.Anda mencari acara onSelect di objek datepicker:
sumber
Saya menulis ini karena saya membutuhkan solusi untuk memicu suatu peristiwa hanya jika tanggalnya berubah.
Ini adalah solusi sederhana. Setiap kali kotak dialog ditutup, kami menguji untuk melihat apakah data telah berubah. Jika sudah, kami memicu acara khusus dan mereset nilai yang disimpan.
Sekarang kita dapat menghubungkan penangan untuk acara khusus itu ...
sumber
sumber
Saya menggunakan bootstrap-datepicker dan tidak ada solusi di atas yang berfungsi untuk saya. Jawaban ini membantu saya ..
bootstrap datepicker tanggal perubahan acara tidak menyala ketika secara manual mengedit tanggal atau tanggal kliring
Inilah yang saya terapkan:
Semoga ini bisa membantu orang lain.
sumber
Pada jQueryUi 1.9 Saya berhasil membuatnya berfungsi melalui nilai data tambahan dan kombinasi fungsi beforeShow dan onSelect:
Bekerja untuk saya :)
sumber
Saya tahu ini adalah pertanyaan lama. Tapi saya tidak bisa mendapatkan jquery $ (ini) .change () acara untuk mem-api dengan benar di Pilih. Jadi saya pergi dengan pendekatan berikut untuk memecat acara perubahan melalui vanilla js.
sumber
Coba ini
Semoga ini membantu:)
sumber
Coba:
sumber
Manual mengatakan:
Begitu:
Bekerja untukku.
sumber
Keutuhan saya:
sumber
Solusi saya adalah:
sumber
DatePicker memilih nilai mengubah kode acara di bawah ini
sumber
jika Anda menggunakan wdcalendar, ini akan membantu Anda
acara diReturn bekerja untuk saya
semoga ini membantu
sumber
Saya pikir masalah Anda mungkin terletak pada bagaimana pengaturan data Anda. Mengapa Anda tidak memutuskan input ... jangan gunakan altField. Alih-alih secara eksplisit mengatur nilai-nilai ketika onSelect menyala. Ini akan memberi Anda kendali atas setiap interaksi; bidang teks pengguna, dan datepicker.
Catatan: Terkadang Anda harus memanggil rutin pada .change () dan bukan .onSelect () karena onSelect dapat dipanggil pada interaksi berbeda yang tidak Anda harapkan.
Kode semu:
sumber