在 jQuery 中使用輸入元素時,通常會依賴 .change 事件來擷取值變更。但是,如初始查詢中所述,此事件僅在輸入失去焦點時觸發。為了解決這個問題,可以採用多種方法來即時檢測輸入變化。
現代瀏覽器支援輸入事件,只要輸入值變更就會觸發該事件。在 jQuery 中,這可以實現為:
$('#someInput').on('input', function() { $(this).val(); // Get the current input value });
較舊的瀏覽器使用 keyup 事件,該事件在釋放按鍵時觸發。但是,此方法可能不可靠,因為它可能會觸發誤報,並且無法偵測複製貼上帶來的值變更。
$('#someInput').keyup(function() { $(this).val(); // Get the current input value });
克服 keyup 的限制,您可以使用計時器定期檢查輸入值是否有變化。這可以使用 setInterval 或 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
透過利用這些方法,您可以有效地即時偵測輸入變化,無論瀏覽器或使用者操作如何。選擇最適合您的特定要求和瀏覽器支援的方法。
以上是如何在 jQuery 中偵測即時輸入變化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!