【问题标题】:HTML textareas - how to completely exclude from tabindex?HTML textareas - 如何从 tabindex 中完全排除?
【发布时间】:2013-12-21 00:40:10
【问题描述】:

我有 3 个文本区域。第一个是最普通的,它是实际<form> 的一部分,它是可编辑的,等等。另外两个是特殊用例 - 您单击/点击它们,它们的内容会突出显示,以便您可以复制它们(想想“内容提取”,而不是“用户输入”)。所以这两个文本区域不能相互链接或链接到主文本区域。

我找到了一种解决方法,就是将每个textarea的tabindex设置为负值。问题是,在 Mobile Safari 上,屏幕键盘上方的“上一个”和“下一个”按钮处于活动状态,当没有将 tabindex 值应用于主文本区域时,2 个奇怪的文本区域最终成为主文本区域的单向路径;当有一个 tabindex 值应用于主文本区域时,奇怪的行为就更难描述了。

如何让我的 3 个文本区域假装它们不存在于同一页面上?!请不要推荐 iFrames,它实际上是一个 PhoneGap 应用程序......一个 jQuery 解决方案会很好!

【问题讨论】:

  • 如果其他两个区域不是供用户输入的,为什么还要将它们作为textarea 元素?
  • 因为当用户点击/点击它们时,需要向用户显示“复制”选项。不幸的是,当您在网站上看到“点击复制”时,这实际上是在使用 Flash,并且在现代浏览器上没有 JS 方法可以复制到剪贴板。这是一个实际可行的巧妙解决方法,但是是的,它们必须是文本区域才能调出键盘并提示复制。
  • 什么?在任何普通浏览器上,当我三次单击 div 元素,然后右键单击时,将获得一个复制选项。就像textarea 一样。对于这两个元素,双击只选择当前单词。因此,请说明您真正在做什么以及仅通过使用textarea 期望实现什么。
  • 忘掉“普通”浏览器吧,我说的是Mobile Safari(大概是Android)。当用户点击 textarea 时,会有 javascript 从字符 0 到 99999 进行选择,基本上选择了 textarea 中的所有内容。我们的想法是让用户尽可能轻松地使用“复制”选项。
  • 那么你说的这个“javascript”是什么,为什么你不能为div元素编写一个选择操作?您应该在问题中公开所有相关代码,并询问所需的功能,而不是假设的“tabindex”行为。

标签: jquery html mobile-safari


【解决方案1】:

您可以在表单中添加带有tabindex的项目,并添加排除的两个textarea。

<form>
    <input />
    <input />
    <input />
</form>
<textarea />
<textarea />

【讨论】:

  • 谢谢,但 textareas 已经在主 &lt;form&gt; 之外。
【解决方案2】:

两个文本区域都需要在主 &lt;form&gt; 之外,而另一个 textrea 需要有负的 tabindex 值。我认为iOS上的键盘可以显示在混合/网络应用程序上,而没有悬停在键盘上的“完成”/上一个/下一个栏,但显然,即使您关注的表单元素是唯一的,它也会显示在所有键盘上页面上的一个 - 这是必要的,因为 Apple 无法信任/假设该页面在应该隐藏键盘时。如果您知道在 PhoneGap 上禁用该栏的方法,请在此处评论!

【讨论】:

    猜你喜欢
    • 2016-01-22
    • 2011-08-06
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2017-03-07
    • 2014-01-09
    • 2023-04-01
    相关资源
    最近更新 更多