请参阅下面的 JavaScript:
maxLengthDay(event) {
const maxLength = 2;
if (event.target.value.length + 1 > maxLength)
return false;
else
return true;
}
和下面的 HTML:
<input (keypress)="maxLengthDay($event)" type="number" />
它按预期工作,即确保输入框最多只包含两个字符。如果用户突出显示该数字(特别是有两个数字时)并尝试覆盖一两个数字,就会出现问题。没有任何反应,因为输入控件此时包含两个数字。
如何允许用户覆盖输入控件中的数字(当已经有两个数字时)?
我会设置min
and max
属性,然后检查输入数字的有效性,并将任何超出范围的内容设置为最大值或最小值。
document.getElementById('num').addEventListener('input', function(e)
{
if(e.target.validity.rangeOverflow)
{
e.target.value = e.target.max;
}
if(e.target.validity.rangeUnderflow)
{
e.target.value = e.target.min;
}
});
<input type="number" min="0" max="99" id="num">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)