在無聊刷視頻的時候,看到了這樣的一個視頻:
於是自己去試了一試,確實存在這個問題,自己也按照小山的修復辦法測試了一些也確實能夠修復此問題。但是自己在測試時無意發現例如在輸入中文時,此時我們按下鍵盤中的⬆️鍵 /⬇️鍵會修改input:number文本框的值,意識到這應該不是用戶所期望的行為,這裡的值不應該發生變化。於是自己便嘗試性的修復一下這個問題。以下是自己的修復示例代碼:
修復此問題主要方法為:
- 監聽鍵盤事件行為,在合適的時機屏蔽鍵盤的默認行為
- 監聽用戶輸入是否為非數字行為
- 需要注意,
input事件中的event.data與e.target.value是不同的,一個代表這次的輸入值,一個代表輸入框中的值
- 需要注意,
此問題為原生瀏覽器就存在的問題,無關於框架或其他
筆者在測試時使用的瀏覽器為 Chrome,版本為 115.0.5790.114,系統為 MacOS13.5 (22G74)