在我的表单中,我想只允许在文本框中键入整数值。怎么做?
答案 0 :(得分:100)
您可以使用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上面的只允许输入整数,因为在RegularExpressionValidator中有一个名为ValidationExpression的字段,它验证TextBox。但是,您可以根据自己的要求进行修改。
您可以在MVC和Jquery here中看到更多示例。
答案 1 :(得分:66)
<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>
请找到完整的代码@ allow only numbers in textbox
答案 2 :(得分:24)
试试这个:
注意:这是使用Ajax Toolkit
首先添加Ajax脚本管理器并使用以下代码
<asp:FilteredTextBoxExtender ID="TextBox1_FilteredTextBoxExtender" runat="server"
Enabled="True" TargetControlID="TextBox1" FilterType="Numbers">
</asp:FilteredTextBoxExtender>
答案 3 :(得分:18)
简易方法: -
您可以使用TextBox的 onkeydown 属性将其值限制为仅限数字。
很简单..: - )
<asp:TextBox ID="TextBox1" runat="server" onkeydown = "return (!(event.keyCode>=65) && event.keyCode!=32);"></asp:TextBox>
!(keyCode&gt; = 65)检查是否排除了Albphabets ..
keyCode!= 32 检查是否排除数字之间的空格字符..
答案 4 :(得分:6)
试试这个
注意:这是使用Ajax Toolkit
首先添加Ajax脚本管理器并使用以下代码将过滤器应用于文本框
在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>
答案 5 :(得分:3)
更简单的方法是使用TextMode
属性:
<asp:TextBox runat="server" ID="txtTextBox" TextMode="Number">
答案 6 :(得分:3)
另一个解决方案是使用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>
您也可以为MinimumValue
和MaximumValue
属性设置合理的值。
答案 7 :(得分:2)
可以使用比较验证器完成,如下所示。与其他答案不同,这也允许输入负数,这对整数值有效。
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:CompareValidator ControlToValidate="TextBox1" runat="server" ErrorMessage="Integers only please" Operator="DataTypeCheck" Type="Integer" ></asp:CompareValidator>
答案 8 :(得分:2)
只需使用
<input type="number" id="foo" runat="server" />
除IE +10外,它适用于所有现代浏览器。以下是完整列表:
答案 9 :(得分:2)
您可以使用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>
答案 10 :(得分:2)
一步一步
如果你有一个文本框如下,
<asp:TextBox ID="TextBox13" runat="server"
onkeypress="return functionx(event)" >
</asp:TextBox>
你创建一个像这样的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控制字符,或者语句排除任何东西,这不是数字
答案 11 :(得分:2)
您可以使用客户端验证:
<asp:textbox onkeydown="return (!(event.keyCode>=65) && event.keyCode!=32);" />
答案 12 :(得分:1)
试试这个:
<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事件
上的输入文本框中调用此函数答案 13 :(得分:1)
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);" />
接受键:数字+ NumPedNumbers + Tab +&#34;,&#34; +&#34;。&#34; + LeftButton + RightButton + Delete + BackSpace
答案 14 :(得分:1)
我们可以使用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;
}
使用您的文本框验证此代码。
答案 15 :(得分:0)
您可能会发现有用的microsoft msdn文章How To: Use Regular Expressions to Constrain Input in ASP.NET。看一下“Common Regular Expressions”表。它有
的验证示例非负整数
^\d+$
此表达式验证该字段是否包含大于零的整数。
答案 16 :(得分:0)
正则表达式验证器下方的用户。
{
"error": {
"reason": "failed to find analyzer [titleAnalyzer]",
"root_cause": [
{
"reason": "[elastisearch][127.0.0.1:9300][indices:admin/analyze[s]]",
"type": "remote_transport_exception"
}
],
"type": "illegal_argument_exception"
},
"status": 400
}
答案 17 :(得分:0)
我会使用ASP.NET Ajax Filter TextBoxExtender控件
https://www.aspsnippets.com/Articles/ASPNet-AJAX-FilteredTextBoxExtender-Control-Example.aspx
答案 18 :(得分:0)
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();
}
}