我如何阻止输入接受尾部破折号的数量(像"10-“或”10-7“这样的值)?如果你输入了错误的格式,输入不会给你任何值。
<input name="Number" type="number">
发布于 2018-04-27 22:21:39
function validate(evt) {
l = document.getElementsByTagName('input')[0].value.length;
if(l === 0 && String.fromCharCode(evt.keyCode) === '-') return
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
<input type='text' onkeypress='validate(event)' />
发布于 2018-04-27 22:22:14
您可以使用pattern属性:
<input name="Number" type="number" pattern="[0-9]*">
发布于 2018-04-27 22:30:49
如果不验证输入的值,这是不可能的。
由于它是一个表示数字的字符串,因此无法确定该字符串是否表示数值。
允许的属性不会使您能够验证数字输入控件的值。
在JavaScript的帮助下实现这一点的一种方法可能如下所示。
var numInput = document.querySelector('input');
// Listen for input event on numInput.
numInput.addEventListener('input', function(){
// Let's match only digits.
var num = this.value.match(/^\d+$/);
if (num === null) {
// If we have no match, value will be empty.
this.value = "";
}
}, false)
<input name="Number" type="number" min="0" >
https://stackoverflow.com/questions/50064395
复制相似问题