Выбор iOS -Клавиатура, когда ввод создается javascript - PullRequest
0 голосов
/ 29 февраля 2020

При создании ввода с помощью javascript мобильное сафари не выбирает правильную клавиатуру. Для first input отображается decimalPad-клавиатура , но для second input отображаются только numbersAndPunctuation-keyboard .

Как это исправить?

let myInput = document.createElement('input');
myInput.id = 'second';
myInput.type = 'number';
myInput.min = '0';
myInput.step = 'any';
myInput.inputmode = 'decimal';

document.getElementById('here').appendChild(myInput);
first input: <input id='first' type='number' min='0' step='any' inputmode='decimal'>

<div id='here'>second input: </div>

1 Ответ

2 голосов
/ 29 февраля 2020

Вместо использования:

myInput.inputmode = 'decimal';

используйте это:

myInput.setAttribute('inputmode','decimal');

ИЛИ

myInput.inputMode = 'decimal'; // uppercase M

Объяснение : в общем случае " Атрибуты DOM "для html узлов обычно записываются в camelCase , если вы используете javascript! Внутри HTML вы будете использовать «alllowercase» версию. «НЕ ЗАПРОСИТЕ ПОЧЕМУ. ;-)». Но более рекомендуется использовать метод setAttribute() на узлах, потому что он всегда будет заканчиваться атрибутом элемента DOM, независимо от того, что вы пишете

...