如果用戶嘗試在輸入中輸入不匹配的類型(在我的情況下是數字輸入),Chrome(55.x)中不會出現任何外觀。爲了提高可用性,我希望顯示一個彈出窗口,讓用戶知道他們正試圖輸入無效數據,而不是讓他們認爲輸入是「破碎」的。如果在輸入字段中輸入了錯誤的類型,在Chrome中顯示消息
這是很容易在FF純JS實現(這將允許輸入失配系,它只是無效):
input.addEventListener('input', function() {
if (!this.checkValidity()) {
this.value = '';
console.log('please enter a number!');
}
}
由於Chrome實際上並沒有什麼投入,但是,有效性輸入爲空時檢查總是通過;它似乎沒有對錯誤的輸入做任何事情,除了忽略它。
有什麼方法可以覆蓋此行爲,或以其他方式實現預期效果?
我曾考慮過這種方法,但因爲它會變得非常混亂 - 您必須考慮Delete和Backspace以及可以在輸入字段上操作的任何鍵盤快捷方式;而不是一個很好的,簡單的功能,你可以迅速結束了令人費解的代碼。雖然我很欣賞你的答案(並且它比我的代碼更優雅),但如果它選擇的是默認行爲,我將採用懶惰選項。 ;) – chrBrd