iPad não está escrevendo texto no <input>
Estou tendo problemas com o<input>
campo ao executar meu aplicativo no iPad.
Na área de trabalho, você clica na caixa de texto, digita o texto e clica em um botão para validar a entrada. No iPad, no entanto, ele abre o painel do teclado quando você clica nele, mas o texto não é exibido na caixa de texto quando você digita.
Para tornar as coisas ainda mais estranhas, eu tenho um<textarea>
em outra seção do aplicativo e funciona perfeitamente. A diferença é que um está em cima do aplicativo e o outro está em um html importado.
A estrutura da aplicação é assim:
No topo, tenho a página HTML5 principal, que importa uma página html que contém 3 divs. Cada div por sua vez importa outras páginas html. E essas páginas têm um conteúdo diferente, incluindo o campo de entrada problemático. Algo assim:
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
O código para o<textarea>
sentado no html principal é assim:
<form id="formNotes">
<textarea id="mainTextbox" type="text" onKeyUp="RefreshNote()" onChange="RefreshNote()"></textarea>
</form>
E o código para o<input>
campo dentro da página html importada é assim:
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>
Uma coisa que aprendi sobre o uso de eventos em HTMLs importados foi que você precisava usar ontouchstart e outros para chamar as funções de clique. Mas, neste caso, posso fazer com que o iPad abra o teclado, por isso não sei por que não está reconhecendo o clique nas teclas do teclado ou porque não está enviando o valor para a caixa de texto.
[EDIT:] Eu descobri a razão pela qual eu não estou recebendo qualquer texto escrito é porque o iPad acha que o<input>
campo não existe (aparece em branco no alerta, em vez de[object Object]
ou[object HTMLInputElement]
). Eu não tenho nenhuma idéia do porquê.
[EDIT 2:] eu tentei usargetElementsByTagName
egetElementsByClassName
ao invés degetElementById
. Com isso, parece reconhecer o<input>
, mas ainda não consigo alcançar o valor.