输入数字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"; }