I have 3 text box which takes values postal code & mobile number & residential number. I got the solution for allowing only number in text box using jquery from Bellow post.
I would like to make an EditFor textbox accept numbers only
but can we do this using data annotations as I am using MVC4 razor ?
The standard solution to restrict a user to enter only numeric values is to use <input> elements of type number. It has built-in validation to reject non-numerical values.
In razor, everything is easy just add @readonly attribute to the code will do the needful. Hope this helps you a bit.
Both of them provide the same HTML output, “HTML. TextBoxFor” is strongly typed while “HTML. TextBox” isn't. Below is a simple HTML code which just creates a simple textbox with “CustomerCode” as name.
i was just playing around with HTML5 input type=number. while its not supported by all browsers I expect it is the way going forward to handle type specific handling (number for ex). pretty simple to do with razor (ex is VB)
@Html.TextBoxFor(Function(model) model.Port, New With {.type = "number"})
and thanks to Lee Richardson, the c# way
@Html.TextBoxFor(i => i.Port, new { @type = "number" })
beyond the scope of the question but you could do this same approach for any html5 input type
Use a regular expression, e.g.
[RegularExpression("([1-9][0-9]*)", ErrorMessage = "Count must be a natural number")] public int Count { get; set; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With