在JS開發中,我們常常需要監聽用戶在頁面上的輸入。這時候就會用到事件監聽,這個監聽可以很方便地捕捉用戶輸入的數據,從而實現更加靈活的頁面交互。
舉個例子,在一個注冊頁面中,我們需要監聽用戶輸入的郵箱地址。如果用戶輸入的是無效的郵箱格式,那么頁面就需要給出提示。這時候就可以使用事件監聽用戶輸入的情況,當用戶輸入完畢時,我們可以根據輸入的內容進行校驗,如果是無效的郵箱格式,那么就彈出提示框告訴用戶重新輸入。
let emailInput = document.getElementById('email'); emailInput.addEventListener('input', function(){ let email = emailInput.value; if(!checkEmail(email)){ alert('請輸入正確的郵箱格式'); } }) function checkEmail(email){ // 校驗郵箱格式是否合法 return true; }
除了監聽用戶的輸入,事件還可以用于監聽輸入框的獲得和失去焦點等狀態。舉個例子,在一個搜索框中,我們需要監聽用戶是否在輸入內容,如果正在輸入,就顯示搜索結果;如果輸入完成并點擊搜索按鈕,則跳轉到搜索結果頁面。這時候,我們就可以使用事件監聽輸入框的獲得和失去焦點狀態,從而確定用戶當前的操作。
let searchInput = document.getElementById('search'); searchInput.addEventListener('focus', function(){ // 輸入框獲得焦點 showResult(); }) searchInput.addEventListener('blur', function(){ // 輸入框失去焦點 hideResult(); })
事件的監聽也可以用于實現實時計算。比如,在一個價格計算頁面中,我們需要根據用戶在輸入框中輸入的數量和單價實時計算出總價。這時候,就可以使用事件監聽用戶輸入框中的數據變化,并通過算法實時計算出總價并顯示在頁面上。
let priceInput = document.getElementById('price'); let quantityInput = document.getElementById('quantity'); let totalOutput = document.getElementById('total'); priceInput.addEventListener('input', function(){ let price = parseFloat(priceInput.value); let quantity = parseFloat(quantityInput.value); let total = price * quantity; if(!isNaN(total)){ totalOutput.innerText = total.toFixed(2); } }) quantityInput.addEventListener('input', function(){ let price = parseFloat(priceInput.value); let quantity = parseFloat(quantityInput.value); let total = price * quantity; if(!isNaN(total)){ totalOutput.innerText = total.toFixed(2); } })
最后,需要注意的是,雖然事件很方便,但是在實際開發中,需要根據具體需求選擇合適的事件監聽方式。比如,在一些復雜的交互場景中,可能需要使用更加靈活的事件監聽方式,比如鍵盤事件監聽、鼠標事件監聽等。
上一篇CSS 字符編碼