Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MobileSafari:iframed表单“下一个输入”关于下拉错误_Javascript_Ios_Iphone_Iframe_Mobile Safari - Fatal编程技术网

Javascript MobileSafari:iframed表单“下一个输入”关于下拉错误

Javascript MobileSafari:iframed表单“下一个输入”关于下拉错误,javascript,ios,iphone,iframe,mobile-safari,Javascript,Ios,Iphone,Iframe,Mobile Safari,在这里寻找关于一个非常奇怪的bug的信息。我和另一位同事已经为此努力了一段时间。我看过了大多数(如果不是所有的话)相关的SO帖子,但似乎没有一篇能直接解决这个问题 我们有一个非常简单的移动网络表单。此表格的流程为: Select > Input[type=text] > Select > Select > Input[type=text] > Button 问题就在这里。当ios设备上的用户单击select(选择)时,会弹出表单帮助程序,用户可以选择一个值 如果用

在这里寻找关于一个非常奇怪的bug的信息。我和另一位同事已经为此努力了一段时间。我看过了大多数(如果不是所有的话)相关的SO帖子,但似乎没有一篇能直接解决这个问题

我们有一个非常简单的移动网络表单。此表格的流程为:

Select > Input[type=text] > Select > Select > Input[type=text] > Button
问题就在这里。当ios设备上的用户单击select(选择)时,会弹出表单帮助程序,用户可以选择一个值

如果用户点击表单帮助器中的下一个箭头,则以下输入将被聚焦,键盘将打开,用户可以键入。但是,没有任何文本输入添加到文本输入中

元素上的一些jquery事件和一些日志语句验证了这一点。事实上,输入正在接收焦点,并且正在记录该输入上的每个按键事件,但没有文本

如果用户点击第一个select,单击form helper中的done,然后手动单击以下文本输入,则按键输入有效,文本显示在输入中

对于按钮前的第二个文本输入,同样的错误也会以同样的方式发生。如果用户使用表单帮助器中的下一个箭头按钮,则不会向实际输入字段追加文本

我想到了几种使用javascript来强制实现这一点的方法,但如果可以的话,我希望避免这种情况。但所有这些都可能会引入其他bug,加上移动safaris对焦点、模糊和点击事件的处理进一步强化了这一点

有什么建议吗

-更新-

我在苹果的支持论坛上发现有人也有同样的问题

事实证明它与iframe中的表单相关。此外,单击的第一个输入必须是下拉列表才能重新创建问题

嗨,下面是我面临问题的一个链接。 http://182.74.28.109/H3G/Main.html 复制步骤

单击提供者下拉列表。 从下拉列表中选择一项。 现在,单击>,而不是单击“完成”。 这将移动cusor to Name字段。 现在尝试在文本框中输入一些文本。 文本框不允许输入任何内容。 如果表单不在iframe中,则不存在此项

我已经通过javascript确认,按下Next按钮后的输入具有焦点。还确认正在按下的按钮正在注册,但由于某些原因,值没有附加到输入本身

这让我相信这是某种移动safari bug,这意味着修复可能需要一段时间,即使修复了。。。并非所有较旧的设备都会收到此消息,实际上还不确定iOS遗留设备上是否存在此消息


我有一个基本的概念证明,可以检测按下的字符,对它们进行解码并将它们附加到输入中,但这充其量只是一个黑客。您只能模拟本机功能。我还必须模拟特殊的按钮,比如某些输入的退格和空格键。作为最后的补救措施,我可能会实现一个插件来完成这一点,但它可能不会拥有本机输入的所有功能。我不想走这条路。

想法1如果你用一个小的文本区域替换文本输入,它仍然不起作用吗


想法2:创建一个虚假的隐藏输入元素来接收焦点,然后在该输入上附加一个事件处理程序,这不是一个更容易的方法吗?从您的帖子中可以看出,该事件处理程序可以将焦点传递给您想要的实际输入元素?如果这样做,那么重点元素是否能正常工作?

我目前在一个项目中遇到了同样的问题。几天的谷歌搜索让我来到了这里。我想知道是否有一个实际的错误报告或已知的解决方法。我也在等待解决方案