如何只允许在文本框中的整数?
在我的表单中,我想只允许在文本框中input整数值。 怎么做?
您可以使用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>
上面的TextBox只允许input整数,因为在RegularExpressionValidator中有一个名为ValidationExpression的字段,它validation了TextBox。 但是,您可以根据您的要求进行修改。
你可以在这里看到更多的MVC和JQuery的例子。
<HTML> <HEAD> <SCRIPT language=Javascript> function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : evt.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } </SCRIPT> </HEAD> <BODY> <INPUT id="txtChar" onkeypress="return isNumberKey(event)" type="text" name="txtChar"> </BODY> </HTML>
尝试这个:
注意:这是使用Ajax Toolkit
首先添加Ajax脚本pipe理器并使用下面的代码
<asp:FilteredTextBoxExtender ID="TextBox1_FilteredTextBoxExtender" runat="server" Enabled="True" TargetControlID="TextBox1" FilterType="Numbers"> </asp:FilteredTextBoxExtender>
简单的方法: –
您可以使用TextBox的onkeydown属性将其值限制为仅数字。
好简单..:-)
<asp:TextBox ID="TextBox1" runat="server" onkeydown = "return (!(event.keyCode>=65) && event.keyCode!=32);"></asp:TextBox>
!(keyCode> = 65)检查是为了排除Albphabets ..
keyCode!= 32检查是排除数字之间的空格字符。
试试这个
注意:这是使用Ajax Toolkit
首先添加Ajax脚本pipe理器并使用下面的代码将filter应用于文本框
在asp.net页面的开头提供命名空间
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> <asp:TextBox ID="TxtBox" runat="server"></asp:TextBox> <cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" Enabled="True" TargetControlID="TxtBox" FilterType="Numbers" FilterMode="ValidChars"> </cc1:FilteredTextBoxExtender>
一步步
鉴于你有一个如下的文本框,
<asp:TextBox ID="TextBox13" runat="server" onkeypress="return functionx(event)" > </asp:TextBox>
你可以像这样创build一个JavaScript函数:
<script type = "text/javascript"> function functionx(evt) { if (evt.charCode > 31 && (evt.charCode < 48 || evt.charCode > 57)) { alert("Allow Only Numbers"); return false; } } </script>
if语句的第一部分排除了ASCII控制字符,或者语句排除了任何不是数字的东西
可以使用比较validation器来完成,如下所示。 与其他答案不同,这也允许input负数,这对整数值是有效的。
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:CompareValidator ControlToValidate="TextBox1" runat="server" ErrorMessage="Integers only please" Operator="DataTypeCheck" Type="Integer" ></asp:CompareValidator>
只是使用
<input type="number" id="foo" runat="server" />
它将适用于除IE + 10以外的所有现代浏览器。 这是一个完整的列表:
您可以使用RegularExpressionValidator
<asp:TextBox ID="viewTextBox" runat="server" Text="0"></asp:TextBox> <asp:RegularExpressionValidator ID="viewRegularExpressionValidator" runat="server" ValidationExpression="[0-9]{1,50}" ControlToValidate="viewTextBox" ErrorMessage="Please Enter numbers only">*</asp:RegularExpressionValidator>
我们可以使用JavaScript代码
function validateAlphaNumericCode(event) { keyEntry = (event.which) ? event.which : event.keyCode if (((keyEntry >= '65') && (keyEntry <= '90')) || ((keyEntry >= '97') && (keyEntry <= '122')) || (keyEntry == '37') || (keyEntry == '39') || (keyEntry == '46') || (keyEntry == '8') || (keyEntry == '9') || (keyEntry == '95') || ((keyEntry >= '48') && (keyEntry <= '57'))) return true; else return false; }
validation此代码与您的文本框。
尝试这个 :
<input type="text" onkeypress = "return isDigit(event,this.value);"/> function isDigit(evt, txt) { var charCode = (evt.which) ? evt.which : event.keyCode var c = String.fromCharCode(charCode); if (txt.indexOf(c) > 0 && charCode == 46) { return false; } else if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } return true; }
在onkeypress事件的input文本框中调用此函数
另一种解决方法是使用RangeValidator ,在其中设置Type="Integer"
如下所示:
<asp:RangeValidator runat="server" id="valrNumberOfPreviousOwners" ControlToValidate="txtNumberOfPreviousOwners" Type="Integer" MinimumValue="0" MaximumValue="999" CssClass="input-error" ErrorMessage="Please enter a positive integer." Display="Dynamic"> </asp:RangeValidator>
您也可以为MaximumValue
和MaximumValue
属性设置合理的值。
你可以使用客户端validation:
<asp:textbox onkeydown="return (!(event.keyCode>=65) && event.keyCode!=32);" />
if (document.de.your_textbox_id.value != "") { var checkOK = "0123456789"; var checkStr = document.de.your_textbox_id.value; var allValid = true; for (i = 0; i < checkStr.length; i++) { ch = checkStr.charAt(i); for (j = 0; j < checkOK.length; j++) if (ch == checkOK.charAt(j)) break; if (j == checkOK.length) { allValid = false; break; } } if (!allValid) { alert("Please enter only numeric characters in the text box."); document.de.your_textbox_id.focus(); } }
function CheckNumeric(event) { var _key = (window.Event) ? event.which : event.keyCode; if ((_key > 95 && _key < 106) || (_key > 47 && _key < 58) || _key == 8 || _key == 9 || _key == 37 || _key == 39 || _key == 190 || _key == 110) { return true; } else { return false; } } <input type="text" onkeydown="return CheckNumerick(event);" />
接受键:Numbers + NumPedNumbers + Tab +“,”+“。 + LeftButton + RightButton + Delete + BackSpace
您可能会发现有用的微软MSDN文章如何:使用正则expression式约束在ASP.NET中的input 。 看看“普通正则expression式”表。 它有validation的例子
非负整数
^\d+$
该expression式validation该字段包含大于零的整数。
用户在正则expression式validation器下面。
<asp:RegularExpressionValidator ID="RegularExpressionValidatorNumeric" runat="server" ControlToValidate="yourControl ID" ErrorMessage="Registraion ID Should be a Numeric" ValidationExpression="^\d+$" ></asp:RegularExpressionValidator>
- 为什么将<%=%>expression式作为服务器控件上的属性值导致编译错误?
- 设置Response.StatusCode时IIS7重写customErrors?
- .NET中的文件扩展名和MIMEtypes
- 如何debugging:由于堆栈溢出,w3wp.exe进程被终止(在一台机器上工作,但不在另一台机器上)
- 在控制器.NET MVC中创build一个URL
- 什么时候以及为什么在asp.net mvc 2中使用TryUpdateModel?
- 有没有办法强制ASP.NET Web API返回纯文本?
- 意外的AJAXcaching结果在IE8中
- 在ASP.NET中使用MasterPages时使用JQuery的正确方法?