У меня возникают проблемы с полем <input>
при запуске моего приложения на iPad.
На рабочем столе щелкните текстовое поле, введите текст и нажмите кнопку, чтобы подтвердить ввод. Однако на iPad открывается клавиатура, когда вы нажимаете на нее, но текст не отображается в текстовом поле при вводе.
Чтобы сделать вещи еще более странными, у меня есть <textarea>
в другом разделе приложения, и он отлично работает. Разница заключается в том, что один сидит поверх приложения, а другой - в импортированном html.
Структура приложения такова:
Наверху у меня есть основная страница HTML5, которая импортирует html-страницу, содержащую 3 div. Каждый div по очереди импортирует другие html-страницы. И эти страницы имеют различный контент, включая проблемное поле ввода.
Что-то вроде этого:
Main.html
-> container.html (imported via iframe)
-> div1 (imports page n-1 via load(url))
-> div2 (imports page n via load(url))
-> div3 (imports page n+1 via load(url))
pageN.html
-> contains the <input> field
Код для <textarea>
, сидящего на главном html, выглядит следующим образом:
<form id="formNotes">
<textarea id="mainTextbox" type="text" onKeyUp="RefreshNote()" onChange="RefreshNote()"></textarea>
</form>
И код для поля <input>
внутри импортированной html-страницы выглядит следующим образом:
input{
-webkit-user-select: auto;
}
<form id="formInput">
<input id="text1" type="text" ontouchstart="OpenKeyboard(this)" onKeyDown="WriteText(this)" onKeyUp="WriteText(this)" onChange="WriteText(this)"></input>
</form>
Одна вещь, которую я узнал об использовании событий для импортированных HTML, но вам нужно было использовать ontouchstart и другие, чтобы вызвать функции щелчка. Но в этом случае я могу заставить iPad открыть клавиатуру, поэтому я не знаю, почему она не распознает щелчок на клавишах клавиатуры или почему она не отправляет значение в текстовое поле.
[EDIT:] Я выяснил причину, по которой я не получаю никакого текста, потому что iPad считает, что поле <input>
не существует (оно отображается пустым в предупреждении, а не [object Object]
или [object HTMLInputElement]
). Я даже не знаю, почему.
[EDIT 2:] Я попытался использовать getElementsByTagName
и getElementsByClassName
вместо getElementById
. При этом он распознает <input>
, но я до сих пор не могу достичь значения.