How to allow only numbers in textbox in mvc4 razor
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 ?
Solution 1:
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
Solution 2:
Use a regular expression, e.g.
[RegularExpression("([1-9][0-9]*)", ErrorMessage = "Count must be a natural number")]
public int Count { get; set; }
Solution 3:
@Html.TextBoxFor(m => m.PositiveNumber,
new { @type = "number", @class = "span4", @min = "0" })
in MVC 5 with Razor you can add any html input attribute in the anonymous object as per above example to allow only positive numbers into the input field.