【发布时间】:2014-04-14 16:23:18
【问题描述】:
我想制作一个只允许输入数值的文本框。 如何做到这一点?
【问题讨论】:
标签: c# asp.net validation
我想制作一个只允许输入数值的文本框。 如何做到这一点?
【问题讨论】:
标签: c# asp.net validation
试试下面的代码
<asp:TextBox ID="txtID" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ValidationGroup="VGrpSave" SetFocusOnError="false" Display="None" ErrorMessage="Only numeric values are allowed" ControlToValidate="txtID" ValidationExpression="\d*"></asp:RegularExpressionValidator>
<asp:Button ID="btnSubmit" runat="server" ValidationGroup="VGrpSave" Text="Submit"></asp:Button>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="List" ShowMessageBox="True" ShowSummary="false" ValidationGroup="VGrpSave" />
【讨论】:
使用RegularExpressionValidator
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="TextBox1" runat="server" ErrorMessage="Only Numbers allowed" ValidationExpression="\d+"></asp:RegularExpressionValidator>
【讨论】:
亲爱的,你可以通过 jquery 来做到这一点,如果你正在使用 jquery,试试这个
$(document).ready(function() {
$("#txtboxToFilter").keydown(function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
});
【讨论】:
在 ASP.NET 中试试这个:
<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer"
ControlToValidate="TxtBox" ErrorMessage=Error" />
【讨论】:
您可以使用 ASP.NET 正则表达式验证器并编写一个只接受数值的 RegEx。
如果你想拦截击键,只输入数字键,你必须使用 JavaScript(我不会这样做)。
【讨论】: