Как можно заменить точку на запятую в 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
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вроде гуглил и ошибка такая возникает когда передается не StringЗдесь вроде всё ок, но почему то ошибка
Как сформировать функцию, имея ее текст в качестве строки? Дискас