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

Jui*_*est 64 asp.net

在我的表单中,我想只允许在文本框中键入整数值.怎么做?

Ash*_*rma 107

您可以使用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>
Run Code Online (Sandbox Code Playgroud)

在TextBox上面只允许输入整数,因为在RegularExpressionValidator中有一个名为ValidationExpression的字段,它验证TextBox.但是,您可以根据您的要求进行修改.

你可以看到在MVC和jQuery更多的例子在这里.

  • 请注意,它仍然允许您键入非数字.但是,如果这样做,则会显示红色验证消息,并且不提交回发按钮. (3认同)

Mad*_*ela 69

<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>
Run Code Online (Sandbox Code Playgroud)

在文本框中找到完整的代码@ allow only numbers

  • 这是一个比接受的答案更好的解决方案.不允许用户输入非数字对于用户而言比让他们告诉他们之后他们错了更方便.此外,当后置情况变得有点复杂时,更容易做逻辑客户端. (12认同)
  • 这种方法不会阻止复制和粘贴 (2认同)

Vin*_*nod 25

试试这个:

注意:这是使用Ajax Toolkit

首先添加Ajax脚本管理器并使用以下代码

<asp:FilteredTextBoxExtender ID="TextBox1_FilteredTextBoxExtender" runat="server"
Enabled="True" TargetControlID="TextBox1" FilterType="Numbers">
</asp:FilteredTextBoxExtender>
Run Code Online (Sandbox Code Playgroud)


EIV*_*EIV 20

简单的方法: -

您可以使用TextBox 的onkeydown属性将其值限制为仅限数字.

很容易..:-)

<asp:TextBox ID="TextBox1" runat="server" onkeydown = "return (!(event.keyCode>=65) && event.keyCode!=32);"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

!(keyCode> = 65)检查是否排除了Albphabets ..

keyCode!= 32 check用于排除数字之间的Space字符.


A-S*_*ani 13

更简单的方法是使用TextMode属性:

<asp:TextBox runat="server" ID="txtTextBox" TextMode="Number">
Run Code Online (Sandbox Code Playgroud)


小智 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>
Run Code Online (Sandbox Code Playgroud)