<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
<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 打开键盘,所以我不知道为什么它不能识别键盘按键上的点击,或者为什么它没有将值发送到文本框中。
[编辑:] 我发现我没有写任何文本的原因是因为 iPad 认为该<input>
字段不存在(它在警报中显示为空白,而不是[object Object]
or [object HTMLInputElement]
)。我不知道为什么。
[编辑 2:] 我尝试使用getElementsByTagName
andgetElementsByClassName
而不是getElementById
. 有了它,它似乎可以识别<input>
,但我仍然无法达到该值。