Это похоже на поведение валидатора.Я бы открыл проблему с jQuery, чтобы посмотреть, смогут ли (или захотят) ее решить.
А пока вы можете сделать свой собственный метод валидатора таким, чтобы он работал так, как вы ожидаете:
$.validator.addMethod('myValidateNumber', function (value) {
return /^(\d\.|\.)?\d+$/.test(value);
}, 'Please enter a valid number');
Это регулярное выражение появляется , чтобы делать то, что вы хотите - вероятно, есть и лучший способ написать это.Я не мастер регулярных выражений, но этого должно быть достаточно.
Тогда просто используйте myValidateNumber
в class
того, что вы проверяете.Вы можете узнать больше о расширении проверки jQuery здесь .
EDIT : Чтобы подключить это к MVC3 - взгляните на этот пост StackOverflow: Выполните клиентпроверка стороны для пользовательского атрибута .
По сути, мы создаем собственную проверку для этого, и вы можете применить свой собственный атрибут к модели.
РЕДАКТИРОВАТЬ 2: Похоже, что если вы используете validator.addMethod('number'...
, это изменит поведение по умолчанию для числовой проверки.Это означает, что вам вообще не нужно менять свою модель MVC.В общем, добавление этого к вашей странице загрузки:
$.validator.addMethod('number', function (value) {
return /^(\d\.|\.)?\d+$/.test(value);
}, 'Please enter a valid number');
Должно решить проблему.