繁体   English   中英

如何只允许文本框中的数字?

[英]How To allow only numbers in textbox?

我想只输入数字文本框

这种类型=“数字”不会阻止客户端的lettrs

@Html.TextBoxFor(m => m.kidsNumber, 
                      new { @class = "textBox1", 
                             @type = "number", 
                             @min = "1", 
                             @max = "30", 
                             @id = "kidsNumber"})

这不会阻止客户端和服务器端的字母

[Range(1, 30, ErrorMessage = "1-30")]
[RegularExpression("([0-3][0-9])", ErrorMessage = "1-30")]
public string kidsNumber { get; set; }

老实说,不确定我理解你的问题。 类型为“number”的输入将阻止除支持它的浏览器中的数字之外的任何输入。 并非所有浏览器都支持较新的HTML5输入类型,而在那些不支持的情况下,该字段将回退到将接受任何字符的常规文本输入。 当然,它并不会阻止人们使用浏览器开发人员工具等代码来使用您的代码,并将类型从数字更改为文本以允许任何字符。

如果你想要更多的控制,你可以附加一个JavaScript事件处理程序来监听字段上的keydown之类的事件,然后正则表达式替换任何不是数字的东西,但当然,JavaScript可以被禁用或以其他方式被篡改。

实际上,防止非数字输入的最佳选择是将属性的类型从string更改为类似int的类型。 如果模型绑定器无法从发布的数据中解析数字,则该字段将设置为0(作为int的默认值),如果使其为可为空的int( int? ),则为null。 无论哪种方式, Range属性的验证都会启动并向用户显示错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM