我花了最近几天寻找解决方案,但所有应该工作的东西(根据文档)都没有。
我正在使用fastclick来消除打算在iPad上运行的HTML5应用程序的300毫秒延迟。一切都很好,除了我失去了将文本输入textarea的能力。简单的单行字段可以工作,但不能使用多行textarea。
当我点击文本区域时,键盘弹出,我可以开始输入。输入的第一个字母出现在文本区域中 - 但这就是全部。后续的信件没有。如果我关闭键盘并再次点击文本区域,我可以输入另一个字母。
我已尝试了所有建议内容,包括needsclick
,needsfocus
等。我尝试编辑fastclick.js以扩展处理input
元素的特殊代码以覆盖{ {1}} - 没什么。
我可能因为它而不得不转储快速点击并自己手动完成所有操作,因为我已经在这个问题上丢失了近一周。然而,在我这样做之前,也许有人可以指出我正确的方向。
请注意,问题出现在iPad和iPhone上,带有iOS 9.2(特别是9.2.1 - 最新版本)。
答案 0 :(得分:2)
好吧,原因很简单 - 与fastclick没什么关系。它this answer实际上是为我解决的。
在我的CSS中,我有以下内容:
body * {
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}
body input {
-webkit-touch-callout: text;
-webkit-user-select: text;
user-select: text;
}
这样做是为了处理愚蠢的用户,这些用户会触及" touchstart"在按钮上然后开始考虑他们想要什么 - 然后在" touchend"之后,ios将进入复制/粘贴模式。
然后在输入上明确禁用它以允许在文本中复制/粘贴。然而,我忘了在第二部分中包括textarea。现在第二部分看起来像这样:
body input, body textarea {
-webkit-touch-callout: text;
-webkit-user-select: text;
user-select: text;
}
一切都按预期工作。
答案 1 :(得分:1)
jQuery修复
$('input.form-control,textarea').on('click',function(){
$(this).focus();
});
这对我来说很有效。