asp:Textbox type=number 允许 "e"

asp:Textbox with type=number allowing "e"

我目前正在制作一个带有 asp:TextBox 字段的 asp.net 网页,我将 TextBox 设置为 type=number,现在它只接受数字,但有一个例外。它还接受字母 "e"。有人知道可能导致此问题的原因以及解决方法吗?

<asp:TextBox CssClass="form-control" type="number" id="LotNumber" placeholder="Lotnummer" runat="server" Text="<% $RouteValue:ordernummer %>"/>

10^20 = 1e+20

这是一个符号。我想这就是为什么 "e" 被允许

编辑:

在你的情况下,如果你想阻止 "e"、浮点数和负数,你应该像这样更改你的 ASP 文本框:

<asp:TextBox CssClass="form-control" type="text" pattern="[0-9]+" id="LotNumber" placeholder="Lotnummer" runat="server" Text="<% $RouteValue:ordernummer %>"/>

您可以使用 RegularExpressionValidator。

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="TextBox1" runat="server" ErrorMessage="Please enter only digits" ValidationExpression="\d+"></asp:RegularExpressionValidator>

您可以使用 JavaScript 来完成此操作。请检查以下代码:

 <asp:TextBox CssClass="form-control" type="number" id="LotNumber" placeholder="Lotnummer" runat="server" onkeypress="return isNumberKey(event)" Text="<% $RouteValue:ordernummer %>"/>

请将以下代码粘贴到您页面的标记中:

<SCRIPT language=Javascript>

      function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;

         return true;
      }

   </SCRIPT>