Всем доброго! Народ помогите новичку никак не могу решить вопрос вводы десятичных цифр. Как это делать правильно.
Есть модель:
public decimal Proba1 { get; set; }
стандартная форма ввода не дает вводить десятичные знаки не через " , " не через " . ".
<input asp-for="Proba1" class="form-control" />
Суть проблемы заключалась в следующем: ASP NET Core стало по умолчанию использовать JqueryValidation. И вот тут произошла накладка так как база ждала разделитель в виде ",". А jQuery не пропускал и ждал точку. В результате нельзя было вообще ввести дробное число.
В документации на ASP NET Core я нашел предупреждение об этом. Еще не до конца разобрался как можно правильно и полноценно включить Локализацию, по этому пошел наверно не по самому верному пути просто в самом файле JqueryValidation.js заменил разделитель.
// http://jqueryvalidation.org/number-method/
number: function( value, element ) {
return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\,\d+)?$/.test( value );
},
Он вот в этом блоке
(?:\,\d+)
Решение я взял вот здесь jQuery validate and the comma decimal separator. Но пока так и не смог найти как правильно и полно сделать локализацию JqueryValidation.
Вам необходимо указать тип элемента input, для этого добавьте в него следующее свойство - type="number" и step="any", тогда Ваш элемент будет числовым. Вот так:
<input asp-for="Proba1" class="form-control" type="number" step="any"/>
Браузеры, которые поддерживают <input type="number"> будут отправлять . в качестве десятичного разделителя. Шаг можно установить и свой, к примеру step="0.01".
Для того, чтобы браузеры корректно отрабатывали знак разделителя можно использовать <input type="text">, но в таком случае Вам придется использовать JavaScript библиотеки или JQuery, для того, чтобы контролировать введенные символы с клавиатуры.
Также можно воспользоваться аттрибутом asp-format. Ознакомиться можно тут Standard Numeric Format Strings. Тогда отображение числового значения с 4 знаками после запятой будет выглядеть так:
<input asp-for="Proba1" class="form-control" asp-format="{0:N4}"/>
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники