Apabila bekerja dengan elemen input dalam jQuery, adalah perkara biasa untuk bergantung pada peristiwa .change untuk menangkap perubahan nilai. Walau bagaimanapun, seperti yang dinyatakan dalam pertanyaan awal, peristiwa ini hanya tercetus apabila input kehilangan fokus. Untuk menangani perkara ini, beberapa pendekatan boleh digunakan untuk mengesan perubahan input dalam masa nyata.
Pelayar moden menyokong peristiwa input, yang menyala apabila nilai input berubah. Dalam jQuery, ini boleh dilaksanakan sebagai:
$('#someInput').on('input', function() { $(this).val(); // Get the current input value });
Pelayar lama menggunakan acara keyup, yang menyala apabila kunci dikeluarkan. Walau bagaimanapun, kaedah ini mungkin tidak boleh dipercayai kerana ia boleh mencetuskan positif palsu dan tidak mengesan perubahan nilai daripada penyalinan penampal.
$('#someInput').keyup(function() { $(this).val(); // Get the current input value });
Untuk mengatasi had kekunci , anda boleh menggunakan pemasa untuk menyemak nilai input secara berkala untuk perubahan. Ini boleh dicapai menggunakan setInterval atau setTimeout.
// Using setInterval setInterval(function() { var inputValue = $('#someInput').val(); // Perform actions based on the changed value }, 250); // Check every 250 milliseconds // Using setTimeout (repeating) setTimeout(function() { var inputValue = $('#someInput').val(); // Perform actions based on the changed value // Repeat the timer setTimeout(arguments.callee, 250); }, 250); // Check every 250 milliseconds
Dengan menggunakan kaedah ini, anda boleh mengesan perubahan input secara berkesan dalam masa nyata, tanpa mengira tindakan penyemak imbas atau pengguna. Pilih pendekatan yang paling sesuai dengan keperluan khusus anda dan sokongan penyemak imbas.
Atas ialah kandungan terperinci Bagaimana untuk Mengesan Perubahan Input Masa Nyata dalam jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!