document.querySelector("#maca").addEventListener("keydown", function(e) {
if (e.target.value > this.getAttribute("max")) {
e.preventDefault();
}
})
<input type="text" name="maca" placeholder="maca" id="maca" max="7">
我試圖阻止用戶輸入大于 max 屬性值的數字。發生的事情是首先允許用戶寫入更大的數字然后不允許。
我怎樣才能解決這個問題?
非常感謝!
uj5u.com熱心網友回復:
它比看起來更棘手,因為即使<input type="number" max="7"/>允許您輸入9而不抱怨(我相信它應該抱怨并阻止輸入,但由于某種原因沒有)。下面的例子
<input type="number" max="7"/>
我想出了這個小小的 JS 解決方案:
const max = maca.getAttribute("max");
maca.addEventListener("keydown", function(e) {
const typed = e.key;
if(!isNaN(typed)) e.preventDefault(); // Allow any non-number keys (backspace etc.)
if ( (e.target.value typed) <= max) {
maca.value = typed
} else {
console.log(`Number too big! Max is ${max}`)
}
})
<input type="number" name="maca" placeholder="maca" id="maca" max="7">
這真的不允許用戶輸入8或9。此外,您可以鍵入,1但隨后不能添加另一個數字到 type 11。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/336345.html
標籤:javascript html 网络
下一篇:為什么美湯會回傳重復的結果?
