Я помещал слова "ошибка регрессии" в кавычки, так как, очевидно, есть некоторые смешанные мнения по этому поводу. Для полной информации отслеживайте Bug 24796 в Bugzilla.
Короче Google Chrome внедрил изменения в соответствии с последней версией спецификаций WhatWG: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
что удалено следующие свойства и методы из полей <input type="number"/>
.
Свойства:
- SelectionStart
- selectionEnd
Методы:
- выберите()
- setSelectionRange (начало, конец)
(есть и другие, но они используются с общими ключами)
Методы определяются, если вы проверяете "числовой" экземпляр HTMLInputElement
, однако попытка вызвать методы или запросить свойства вызовет исключение.: - (
IMHO это ошибка (так как функциональность была удалена ничем не получена... и есть 1000 веб-сайтов/приложений, которые обеспечивают расширенное поведение этих числовых полей ввода через JavaScript... но я отвлекаюсь (для тех, кто хотите сразиться, пожалуйста, используйте сообщение об ошибке, указанное выше))
TL; DR
В целях удобства использования я, безусловно, хочу и планирую продолжать использовать поля <input type="number"/>
, поскольку они предоставляют "подсказку" пользовательскому агенту, если на мобильном устройстве (смартфоне/планшете/?), которое я бы
например, представить числовую клавиатуру, когда поле сосредоточено против стандартной альфа-клавиатуры.
Однако для текущей версии Chrome (версия 33.0.1750.146) и любого другого браузера, который слепо реализует это изменение спецификации, я хотел бы безопасно преобразовать отображаемые поля обратно в
<input type="text"/>
Примечания:
- Попытка изменить эти поля "на лету" при изменении их содержимого оказалась неудачной, поскольку поле теряет диапазон выбора при изменении атрибута типа.
- У меня есть решение для решения проблемы, с которым я столкнулся, и я хотел бы опубликовать его в ближайшее время, но я хотел, чтобы этот вопрос/ответ был здесь для всех разработчиков, столкнувшихся с этой проблемой.