输入数字validation – 限制只输入数字或数字,int和float两者
如何限制输入字段只输入数字/数字int和浮动两者。 有时我们需要允许像amount这样的字段的整数和浮点值,所以在这种情况下需要validation。 没有可用的解决方案,但它们具有大尺寸代码。 因此需要一个简短但有效的代码。
Input box that accepts only valid int and float values.
不需要数字输入限制的长代码只需尝试此代码。
它还接受有效的int和float两个值。
Javascript方法
onload =function(){ var ele = document.querySelectorAll('.number-only')[0]; ele.onkeypress = function(e) { if(isNaN(this.value+""+String.fromCharCode(e.charCode))) return false; } ele.onpaste = function(e){ e.preventDefault(); } }
Input box that accepts only valid int and float values.
单线解决方案#1:
将与
step
属性一起使用。
// The user can enter up to 4 decimal places. // Not supported in all browsers, but permits numbers of any decimal precision.
您还可以使用min
和/或max
属性设置最小值和/或最大值。
单线解决方案#2:
使用带有RegExp pattern
属性的常规文本input
元素。
此RegExp接受以点( .
)和/或负号( -
)开头的数字。
首先要做的事情。 我更喜欢显示无效的击键而不是阻止它们。 用户体验Stack Exchange目前似乎同意( 请参阅此问题 )。
也就是说,不是每个人都同意,所以让我们看看我们能做些什么。
第二。 这不会取代validation步骤。 某些有效的击键组合不是有效数字,但需要被允许才能输入有效数字。 例如,用户可以键入小数点(句号或逗号,具体取决于他们使用的语言),然后保留文本框,并且您没有有效的数字。 以下字符串是数字的所有开头,但尚未生效:
- 。
- – 。
- ,
- – , –
前两个是.5或-.5的开头,而后两个在使用逗号而不是小数点的句点的各种语言中是相同的。
这带给我们(已经被拒绝)
您可以将pattern
属性添加到输入字段。 如果输入值与模式不匹配,则可以使用css选择器设置输入字段的样式和/或显示错误消息:invalid
:
.error-msg { display: none; /* Hide by default */ } .number-only:invalid { background: pink; } .number-only:invalid + .error-msg { display: inline; }
Please enter a valid integer or float value.
在文本框的onkeypress中调用一个jquery函数。 在该函数中使用相应的ascii代码来限制输入。
用户无法在js中输入十进制值。 尝试使用此代码:
if(document.getElementById(id).value.indexOf('.') != -1){ print "do not Enter decimal nuber"; }