我如何限制+;-e.“;从HTML数字输入?

我如何限制+;-e.“;从HTML数字输入?,html,validation,input,Html,Validation,Input,我有一个HTML数字输入元素:。 问题是,我还可以输入以下字符:+-e,.,我不希望用户能够编写这些字符 如何限制这些功能?您不应该只依赖于,因为这只适用于现代浏览器,根据浏览器的不同行为 使用jQuery执行其他检查(使用regexp): 编辑:鲍里斯·K得到了一个更好的答案 原始答复: 这将是实现以下目标的一种方式: var ageInput=document.getElementById(“年龄”) ageInput.addEventListener(“向下键”,函数(e){ //阻止:

我有一个HTML数字输入元素:
。 问题是,我还可以输入以下字符:
+-e,.
,我不希望用户能够编写这些字符


如何限制这些功能?

您不应该只依赖于
,因为这只适用于现代浏览器,根据浏览器的不同行为

使用jQuery执行其他检查(使用regexp):


编辑:鲍里斯·K得到了一个更好的答案

原始答复:

这将是实现以下目标的一种方式:

var ageInput=document.getElementById(“年龄”)
ageInput.addEventListener(“向下键”,函数(e){
//阻止:“e”、“=”、“、”、“-”、“”
if([69187188189190]。包括(e.keyCode)){
e、 预防默认值();
}
})

要限制这些值,请使用javascript捕获按键事件,并防止输入这些字符。 我们从事件中捕获keyCode,并通过ASCII码限制输入不允许这些字符

document.getElementById('my-number-input').onkeypress = function(e) {
  if(!e) e = window.event;
  var keyCode = e.keyCode || e.which;
  if(!((keyCode >= 48 && keyCode <= 57) || 
  (keyCode >=96 && keyCode <= 105))) {
    e.preventDefault(); //This stops the character being entered.
  }
}
document.getElementById('my-number-input')。onkeypress=函数(e){
如果(!e)e=window.event;
var keyCode=e.keyCode | | e.which;

如果(!((keyCode>=48&&keyCode=96&&keyCode可能与@elementzero23重复:这不是一个jQuery问题。这是一个非常好的问题,我希望W3C有一天能拿出一个HTML解决方案。
数据
是否等于
输入值
'1'==parseInt('1',10)
是错误的。是的,你最好使用regexp。我同意这一点。感谢添加。我将编辑我的已接受答案。下面是为我做的(在我的应用程序中有效)。我对它做了一些更改,但你的答案给了我线索。Thanks@Wulthan,此小提琴将限制
退格
太完美了!最好的一个,但是,这不适用于“在粘贴上”,对吗?有没有办法将键向下组合并粘贴在一起?
document.getElementById('my-number-input').onkeypress = function(e) {
  if(!e) e = window.event;
  var keyCode = e.keyCode || e.which;
  if(!((keyCode >= 48 && keyCode <= 57) || 
  (keyCode >=96 && keyCode <= 105))) {
    e.preventDefault(); //This stops the character being entered.
  }
}