Я пытаюсь получить атрибуты min = "" и max = "", работающие на вводе только числа.Использование <input type="number">
исключено из-за ужасной поддержки браузером локализации (точки должны быть тысячами разделителей, запятыми в качестве десятичного разделителя, как при вводе, так и при отправке).Оптимально, при отправке формы каждой формы, он будет проверять эти определенные поля, если число следует за шаблоном и находится в правильном диапазоне, как это было бы изначально для ввода типа = "число".
В качестве альтернативы, если это возможно или проще, я также открыт для использования <input type="number" />
, если в шаблоне, знаках валюты и, самое главное, запятые принимаются ОБА, значение = "123,12", пользовательский ввод И отправленное значениена сервер.
Пока что я использую pattern = "-? (\ d + | \ d {1,3} (\. \ d {3}) *) (, \ d +)?"который уже проверяет ввод, за исключением минимальных и максимальных значений.
Ожидаемое поведение таково, что на <input type="text" pattern"-?(\\d+|\\d{1,3}(\\.\\d{3})*)(,\\d+)?" min="0" max="1500" />
это позволит мне ввести любое значение, которое я хочу, но при отправке формы проверьте, является ли численно проанализированное значениеполе (без учета знаков или точек валюты, понимая запятые как десятичные) находится в диапазоне от 0 до 1500. Оптимально, но это не так важно, я также хотел бы стрелки увеличения и уменьшения с шагом = "0,01"например, для ввода типа =" число ".
К сожалению, у меня совершенно нет идей о том, как реализовать это для каждого поля и не запускать глобальный JavaScript на каждой кнопке отправки формы, предотвращаяпо умолчанию, если не каждый вход соответствует критериям.Но даже если бы я это сделал, как бы я показал правильные (локализованные) предупреждения, которые мне выдаст type = "number"?