‹тип ввода=число› и отформатируйте с использованием одного десятичного знака в Chrome

Я использую <input type=number>, где размещаю значения с помощью Javascript. Я хотел бы отформатировать эти числа, чтобы всегда иметь один десятичный знак. Chrome упрямо удаляет конечный нуль из чисел, если они есть, например. 1,0 -> 1.

По-видимому, я должен установить атрибут pattern элемента управления. Однако я не уверен, какие значения принимает здесь Chrome и каков правильный шаблон для форматирования чисел.


person Mikko Ohtamaa    schedule 27.01.2012    source источник
comment
Взгляните на этот вопрос: Как я могу сделать так, чтобы в числовом поле HTML5 отображались нули в конце?   -  person Christian Schmidt    schedule 23.10.2013


Ответы (2)


pattern используется для указания регулярного выражения, которому должно соответствовать любое значение, введенное пользователем. Что-то вроде pattern='[0-9]+\.[0-9]' должно указывать 1 или более цифр, десятичную дробь, а затем 1 цифру. Вы также можете установить размер шага на 0,1 (step=0.1), чтобы использовать только 1 десятичный знак. Я не знаю, будет ли хром учитывать атрибуты шаблона и размера или нет, но вот как их указать.

person Perkins    schedule 14.05.2013
comment
Шаблон помечает только несоответствующие входные данные, он не предотвращает ввод неправильного значения, если хром автоматически удаляет завершающий 0, он может сделать это, а затем пометить поле как недействительное, поэтому я не знаю что это действительно поможет вам указать шаблон. - person Perkins; 15.05.2013

W3CSchools говорит, что атрибут шаблона принимает строку регулярного выражения для сопоставления. Я не вхожу ни в гуру регулярных выражений, но вы можете найти приемлемое регулярное выражение, отвечающее вашим потребностям, на этом сайте.

Обновление: было предложено, чтобы я ссылался на лучший ресурс, чем первоначально перечисленные W3Schools, поэтому здесь говорится «лучшая» ссылка, https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input

Примечание для редактора: хотя я ценю чувство улучшения ответа и предоставления лучших ресурсов для будущих читателей, лично я, несмотря на правила и политику сайта, ЛИЧНО НЕНАВИЖУ, когда правки заставляют меня говорить. Добавьте комментарий, добавьте ответ, но не редактируйте весь текст моего ответа, чтобы изменить то, что я сказал почти 2 года назад. ;)

person Uberfuzzy    schedule 27.01.2012