Saya mengalami masalah yang sangat sulit hari ini. Ketika saya melakukan beberapa verifikasi kotak input, logika bisnis proyek saya adalah bahwa ketika saya memilih opsi spesifik dari SELECT, kotak input input ditampilkan untuk pengguna untuk memasukkan hal -hal. Namun, jika pengguna tidak melakukan apa -apa, kotak peringatan harus muncul untuk dimasukkan oleh pengguna. Setelah input, saya akan menyembunyikan input.
Karena itu, masalah berikut muncul. Ketika kotak input input ditampilkan, fokus perlu diperoleh secara otomatis. Saat ini, saya menggunakannya
Salinan kode adalah sebagai berikut:
document.geteLementById ('id'). focus ();
Yah, saya mencobanya dan itu bekerja dengan sangat baik. Saya tidak bisa membantu tetapi merasa bahagia dan saya menyelesaikannya!
Tetapi perhitungannya tidak sebagus perhitungan manusia. Ketika saya sedang menguji dengan Firefox, itu sudah berakhir. Itu mudah digunakan ketika saya pertama kali menampilkan input, tetapi ketika saya menutup kotak pengingat peringatan, input tidak bisa mendapatkan fokus.!
Masalahnya rumit dan saya tidak tahu mengapa. Jadi, saya memeriksa jawaban para master di internet, menemukan trik berikut, dan mencobanya, dan itu sangat berguna!
Setelah waspada, aslinya
Salinan kode adalah sebagai berikut:
document.geteLementByIdx ('id'). focus ();
Berubah menjadi
Salinan kode adalah sebagai berikut:
window.setTimeout (function () {document.geteLementById ('id'). focus ();}, 0);
Bagus, masalah terpecahkan!
SetTimeout mengacu pada pelaksanaan ekspresi sebelumnya setelah menunda waktu yang ditentukan setelah pemuatan. Tentu saja, inilah eksekusi fungsi setelah menunda 0ms.
Ketika saya baru saja menyelesaikan masalah ini, saya masih tidak tahu mengapa itu dapat diselesaikan di bawah Firefox. Jika ada Tuhan yang hebat, saya akan meninggalkan pesan untuk membiarkan almarhum siswa mempelajarinya, saya sangat berterima kasih!