Как можно заменить точку на запятую в input type="number", при этом сохранить ввод отрицательных чисел и диапазон, установленный в HTML?
function doubleValidate(input) {
input.value = input.value.replace(/[.]/g, ",");
}
<input type="number" class="form-control" asp-for="@item.TempAirBrest" name="TempAirBrest" min="-99.0" max="99.0" step="0.1" required onkeypress="doubleValidate(this)"/>
Но раз вы всё равно делаете проверку, почему бы не добавить в неё и min/max ограниения заменив type на text? (Хотя возможно на телефонах тип number откроет цифровую клавиатуру, надо проверить)
Или меняйте разделитель не при вводе, а потом.
Обратите внимание, что с текстовыми полями не всё так просто. В них можно вставлять скопированное, автозаполнять плагинами и всякое такое.
Событие onkeypress может и не произойти. Я обычно на фокус вешаю интервал с валидатором и убиваю его на блюр.
Ваш пример работает если функцию записать так:
fun = function(input) {
input.value = input.value.replace(/[.]/g, ",");
}
И, соответственно, onKeyPress="fun(this)" jsfiddle
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости