【发布时间】:2020-03-14 02:57:12
【问题描述】:
有没有办法只允许“数字”类型的输入标签中的第一个字符使用负号(或连字符)?它必须输入“数字”,以便正确的键盘出现在移动设备上。但是,用户仍然可以在单击“提交”之前输入多个负号。我使用了.checkValidity(),这有帮助,但除非我先输入数字,否则首先会阻止输入负号。我无法使用.value 进行验证,因为如果无效则返回空白。
HTML
<input type="number" id="input">
JavaScript
var input = document.querySelector('#input');
var value;
input.oninput = function() {
if (input.checkValidity()) {
value = input.value;
}
else{
input.value = value;
}
}
感谢任何帮助。谢谢!
【问题讨论】:
-
您认为这可能不是一个好主意吗?您的用户很可能会粘贴一个数字。如果不幸的是他们还复制了一些额外的文本甚至只是一个空格,那么您的脚本将丢弃所有内容,否则他们本可以更正输入。 IMM 最好是让你的用户知道它是无效的,但不要自动清除它。
标签: javascript html validation