asp:带有type = number的文本框,允许" e"

时间:2015-09-02 11:22:30

标签: asp.net textbox numbers

我目前正在创建一个带有asp:TextBox字段的asp.net网页,我将TextBox设置为type = number,现在只接受带有一个例外的数字。它也接受字母" e"。有人知道可能导致这种情况的原因以及如何解决这个问题吗?

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

3 个答案:

答案 0 :(得分:1)

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 %>"/>

答案 1 :(得分:1)

您可以使用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>

答案 2 :(得分:0)

您可以使用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>