mac*_*aca 6 html javascript web
document.querySelector("#maca").addEventListener("keydown", function(e) {
if (e.target.value > this.getAttribute("max")) {
e.preventDefault();
}
})Run Code Online (Sandbox Code Playgroud)
<input type="text" name="maca" placeholder="maca" id="maca" max="7">Run Code Online (Sandbox Code Playgroud)
我试图阻止用户输入大于 max 属性值的数字。发生的情况是,首先允许用户写入更大的数字,然后不允许。
我怎样才能解决这个问题?
多谢!
它比看起来更棘手,因为甚至<input type="number" max="7"/>允许您输入9而不抱怨(我相信它应该抱怨并阻止输入,但由于某种原因没有)。下面的例子
<input type="number" max="7"/>Run Code Online (Sandbox Code Playgroud)
我想出了这个小小的 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}`)
}
})Run Code Online (Sandbox Code Playgroud)
<input type="number" name="maca" placeholder="maca" id="maca" max="7">Run Code Online (Sandbox Code Playgroud)
这确实不允许用户输入8或9。另外,您可以键入1,但无法在 type 中添加其他数字11。
| 归档时间: |
|
| 查看次数: |
2220 次 |
| 最近记录: |