HTML5: возможно ли отключить событие изменения номера типа ввода через Javascript?

Я хочу отключить событие изменения по умолчанию для входного номера. Я не хочу удалять стрелки, я просто хочу настроить значение, которое пользователь увидит при вводе:

https://codepen.io/vendramini/pen/gNbVoe


<form id="myform">
  <input class="number-padding" type="number" required pattern="[0-9]{2}" />
  <input type="submit" />
</form>

(function($) {
  $("#myform").submit(e => {
    e.preventDefault();

    alert("form sent!");
    return false;
  });

  $(".number-padding").on("change", function(e) {
    e.preventDefault();

    if ($(this).val() < 10) {
      $(this).val("0" + $(this).val());
    }

    return false;
  });
})(jQuery);

Просто скажите мне, возможно ли это сделать без создания мега-компонента ввода с нуля или получить целую структуру только для этого. Спасибо!


Изменить:

Лучшая ссылка, которую я нашел, была react-numeric-input, но я не не используйте React. Я принимаю библиотеки jQuery, которые делают то же самое.


person Lucas Vendramini    schedule 12.06.2019    source источник
comment
Возможно, дубликат stackoverflow.com/questions/31469401/   -  person aggaton    schedule 12.06.2019
comment
@aggaton, спасибо за пост. Но в моем случае речь идет о вводе с номером типа, а не с текстом типа, это совсем другое. Если я отключу свой вводимый номер, стрелки не появятся в моем поле.   -  person Lucas Vendramini    schedule 12.06.2019


Ответы (1)


Просто добавьте атрибут только для чтения к входному тегу, и все готово.

<input class="number-padding" type="number" required pattern="[0-9]{2}" value='5' readonly="readonly" />
person Fithage    schedule 12.06.2019
comment
Как включить стрелки таким образом? - person Lucas Vendramini; 12.06.2019
comment
Стрелки все равно будут отображаться - person Fithage; 12.06.2019
comment
Я изменил свой ответ, проверьте это - person Fithage; 12.06.2019
comment
Та же проблема. Спасибо за попытку. Но disabled и readonly ведут себя одинаково. Стрелки не появлялись в обоих случаях. - person Lucas Vendramini; 12.06.2019
comment
Обратите внимание, что стрелка отображается не во всех браузерах. это возможно в firefox, но не в IE или EDGE - person Fithage; 12.06.2019
comment
Хорошо, работает в Firefox, это хорошо, а как насчет Google Chrome? Во всяком случае, в Firefox стрелки появляются, но это не сработало, как мне определить событие стрелок? Жаль, что для этого нет HTML-решения. - person Lucas Vendramini; 12.06.2019