我目前正在创建一个带有asp:TextBox字段的asp.net网页,我将TextBox设置为type = number,现在只接受带有一个例外的数字。它也接受字母" e"。有人知道可能导致这种情况的原因以及如何解决这个问题吗?
<asp:TextBox CssClass="form-control" type="number" id="LotNumber" placeholder="Lotnummer" runat="server" Text="<% $RouteValue:ordernummer %>"/>
答案 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>