Во время написания калькулятора с помощью Javascript я столкнулся с различным поведением полей <input type=number>
в Chrome и Firefox.
Если по какой-либо причине вы замените значение поля ввода, которое вы вводите, наего собственное значение внутри прослушивателя событий, прикрепленного к полю ввода, невозможно записать числа с десятичными знаками в поле в Firefox:
window.addEventListener("input", function(e){
if(document.getElementById("activator").checked){
e.target.value = e.target.value;
}
});
<input type="number" step="0.00001">
<label>
<input type="checkbox" id="activator">
Activate JS value override
</label>
Интересно, предназначено ли это поведение в Firefox или, может быть, даже стандарт?Или стандарт не определен, и движок браузера определяет, что происходит со значением или как оно обрабатывается?
Редактировать: Я проверил поведение в Edge, и оно ведет себякак хром.Кроме того, я проверил его только с немецкой локалью (кроме Edge, которая, кажется, игнорирует локаль) в Chrome и FF, но, вероятно, она по-прежнему совпадает с точками в качестве десятичных разделителей.
Edit2: Обновлена скрипта, чтобы показать, что проблема не связана с атрибутом "step".