我<input>在iPad上运行我的应用程序时遇到了麻烦.
在桌面上,单击文本框,键入文本,然后单击按钮以验证输入.但是在iPad上,单击它时会打开键盘面板,但键入时文本框中不会显示文本.
为了使事情变得更奇怪,我<textarea>在应用程序的另一部分中有一个完美的工作.区别在于一个位于应用程序之上,另一个位于导入的html中.
应用程序的结构如下:
在顶部我有主HTML5页面,它导入一个包含3个div的html页面.每个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
Run Code Online (Sandbox Code Playgroud)
<textarea>坐在主html上的代码是这样的:
<form id="formNotes">
<textarea id="mainTextbox" type="text" onKeyUp="RefreshNote()" onChange="RefreshNote()"></textarea>
</form>
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)
我在导入的HTML上使用事件时学到的一件事是你需要使用ontouchstart和其他来调用click函数.但在这种情况下,我可以让iPad打开键盘,所以我不知道为什么它没有识别键盘键上的点击,或者为什么它没有将值发送到文本框中.
[编辑:]我发现我没有收到任何文字的原因是因为iPad认为该<input>字段不存在(它在警报中显示为空白,而不是[object Object]或[object HTMLInputElement]).我不知道为什么.
[编辑2:]我尝试使用getElementsByTagName …