Reputation: 101
I am currently making an asp.net webpage with a asp:TextBox field, I set the TextBox to type=number, and it is now accepting only numbers with one exception. It also accepts the letter "e". Does someone know what might cause this and how to solve it?
<asp:TextBox CssClass="form-control" type="number" id="LotNumber" placeholder="Lotnummer" runat="server" Text="<% $RouteValue:ordernummer %>"/>
Upvotes: 3
Views: 4137
Reputation:
You can do this by using JavaScript. Please check following code:
<asp:TextBox CssClass="form-control" type="number" id="LotNumber" placeholder="Lotnummer" runat="server" onkeypress="return isNumberKey(event)" Text="<% $RouteValue:ordernummer %>"/>
Please paste following code in tag of your page:
<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>
Upvotes: 1
Reputation: 11
10^20 = 1e+20
It is a notation. I suppose that's why "e" is allowed
EDIT:
In your case, if you want to prevent "e", floating numbers and negative numbers, you should change your ASP Textbox like this:
<asp:TextBox CssClass="form-control" type="text" pattern="[0-9]+" id="LotNumber" placeholder="Lotnummer" runat="server" Text="<% $RouteValue:ordernummer %>"/>
Upvotes: 1
Reputation: 2172
You can use 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>
Upvotes: 1