There are many ways to validate and force users to type only Numeric data. You have Bootstrap, MVC, Text Boxes with the attribute of, TextMode="Number", 3rd party controls with Mask Edit such as DevExpress, Infragistics, and others.
The problem with some of these options is that they only work on browsers that support HTML5, some don't play well with IE. In the case of the mask editors I have found these to be very clunky such as you have to hit back space to enter data, delete does not work, or it seems the entry just locks up.
You can test it out that mredkj blog at this link.
1. Add JS File to your project
2. Add a TextBox to a page.
<asp:TextBox ID="TxtValScript" runat="server"></asp:TextBox>
TxtValScript.Attributes.Add("onkeypress", "return blockNonNumbers(this,event,true,false);");
TxtValScript.MaxLength = 8;
Validation.zip (1.64 kb)
In the example below I typed some text and clicked a radio button. Either of these actions would have prompted the warning message to be displayed once leaving the page.
ADDING ATTRIBUTES TO FIELDS
1. On the input fields add onclick (or onchange) attributes to the fields you want to track for any changes.
Sample project attached.
CheckDataEntryChgs.zip (139.98 kb)