如何使HTML输入标签只接受数值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (9)

我需要确保<input>字段只以数字作为值。输入不是表单的一部分。因此,它不会被提交,所以在提交过程中验证不是一个选项。我希望用户不能键入除数字以外的任何字符。

有什么办法能做到这一点吗?

提问于
用户回答回答于

你可以用HTML 5输入类型号若要仅限制编号条目,请执行以下操作:

<input type="number" name="someid" />

这将只在HTML 5投诉浏览器中工作。确保html文档的doctype是:

<!DOCTYPE html>

出于一般目的,可以按照以下方式进行JS验证:

function isNumberKey(evt){
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}

<input name="someid" type="number" onkeypress="return isNumberKey(event)"/>

如果要允许小数,请将“if条件”替换为:

if (charCode > 31 && (charCode != 46 &&(charCode < 48 || charCode > 57)))

用户回答回答于

还可以在HTML 5中使用模式属性:

<input type="text" name="name" pattern="[0-9]" title="Title" /> 

不过,如果你的doctype不是html,我认为需要使用一些javascript/jQuery。

扫码关注云+社区