Поскольку я не знаю ни одного способа сделать это в HTML…
Вот как я сделаю это с некоторым JavaScript, используя RegEx для удаления лишних десятичных знаков:
var myInput = document.querySelector('#fixed2');
myInput.addEventListener("keyup", function(){
myInput.value = myInput.value.replace(/(\.\d{2})\d+/g, '$1');
});
<input id="fixed2" type="text" />
Обратите внимание, что здесь я использовал событие keyup
, чтобы вы могли видеть автоматическое удаление.Но он прекрасно работает и с input
!
⋅ ⋅ ⋅
Мы можем обобщить этот метод для работы с несколькими входами, используя собственный атрибут, такой как decimals
:
(Я использую input
событие здесь, так что вы видите разницу)
var myInputs = document.querySelectorAll('.fixed');
myInputs.forEach(function(elem) {
elem.addEventListener("input", function() {
var dec = elem.getAttribute('decimals');
var regex = new RegExp("(\\.\\d{" + dec + "})\\d+", "g");
elem.value = elem.value.replace(regex, '$1');
});
});
<input class="fixed" type="text" decimals="2" placeholder="2 decimals only" />
<br><br>
<input class="fixed" type="text" decimals="3" placeholder="3 decimals only" />
Надеюсь, это поможет.