Samsung Galaxy Tablet не позволяет вводить числа с плавающей запятой входы с типом "число"
Наш клиент хочет, чтобы мы отображали числовую клавиатуру для поля ввода, поэтому в основном я создал поле типа:
<input type="number" name="quantity" step=".01" value="0.00" />
Однако, Galaxy Tablet стирает "." и объединяет числа до и после него, также отключает ".". в клавиатуре.
Есть ли другой способ решить эту проблему или отобразить числовую клавиатуру в поле ввода при использовании type = "text"?
Примечание:
Я попытался использовать атрибут шаблон (который работает на iPhone).
Я тестировал эту проблему на разных Android-устройствах с Android 2.1+. Я не сталкивался с этой ошибкой на других устройствах HTC и Samsung.
Ответы
Ответ 1
Да, есть другой способ.
- Способ 1: не используйте
type="number"
, а используйте type="text"
- Способ 2: применить способ 1 для телефонов только для Android. Обнаружение User-Agent и т.д.
- Способ 3: Применить способ 1 для только сломанных реализаций. Смотрите: Какие модели смартфонов Samsung имеют отсутствующий период для ввода типа html5 = "number" ?
- Способ 4: используйте
type="tel"'
только для Android или сломанных. (нельзя использовать на iPhone как ни один период времени)
- Способ 5: используйте
type="text"
, а затем javascript с пользовательским поведением. См.:
Период всегда показывает: http://jsbin.com/heqeduyi/1/
Период показывает один раз 3 цифры: http://jsbin.com/yinaweho/1
Ответ 2
Обходным путем является использование type="tel"
вместо type="number"
. К сожалению, на iOS type="tel"
не отображается ,
char на клавиатуре (по крайней мере, я не нашел его там). Вы можете проверить агент пользователя для устройств iOS, а затем изменить type
на "number"
.
Ответ 3
Вы пытались установить шаг на "any". Как:
<input type="number" name="quantity" step="any" />
Я вынул "значение", потому что думаю, что вы должны, даже если просто для тестирования
Ответ 4
Я делаю это в С#/Xamarin, и то, что работает для меня на стороне кода (я динамически создаю формы), использует следующее:
EditText edittext1 = new EditText(view.Context);
edittext1.InputType = Android.Text.InputTypes.NumberFlagDecimal;
Надеюсь, что это поможет кому-то
Ответ 5
Чтобы иметь десятичную точку на цифровой клавиатуре на устройствах Android Samsung, используйте это в вашем EditText:
android:inputType="numberDecimal"