【问题标题】:Opera - Prevent input from having focusOpera - 防止输入获得焦点
【发布时间】:2011-10-05 17:32:03
【问题描述】:

我的一个页面上有一个隐藏的输入,隐藏的意思是可见的,但看起来像纯文本。

http://jsfiddle.net/imoda/nVhp8/为例

但我不希望用户能够点击它并编辑信息。基本上禁用它,但没有在 html 中将其设置为 disabled。我想我已经接近了,但无论我尝试过什么都行不通。

似乎适用于除 Opera 之外的所有内容。请帮忙?

【问题讨论】:

  • 为什么需要这样的输入?
  • 当您点击编辑按钮时,输入变为“实时”,返回边框等。类似于编辑 Google 联系人。
  • 您在链接中发布的示例有什么问题?
  • 看起来是 Opera 特有的,我会换个问题。
  • 这看起来像是在询问如何做一些你一开始就不应该尝试的事情。一项可用性法则是,除非您是 Facebook,否则您应该确保与您的网站的互动就像人们对其他网站的期望一样。输入 type="hidden" 并在文本中显示其内容可能是有意义的;将输入元素保留为输入元素是没有意义的,而是试图强制它像其他东西一样工作。下次在框外(或者,视情况而定,在框内)想一想。

标签: jquery html input cross-browser opera


【解决方案1】:

使用超时..

$("input").focus(function(){
    var _this = this;
    setTimeout(function(){_this.blur();},1);
});

以及http://jsfiddle.net/gaby/nVhp8/2/ 上的更扩展示例

【讨论】:

  • 我使用了$(this).hasClass('inactive'),但区别相同。这在 Opera 中运行良好,但在其他浏览器中具有有趣的效果(检查 chrome 或 opera)。如果您在该字段中单击并拖动,您仍然会在该字段周围获得浏览器的“发光”。此外,如果您在示例中双击“World”,则可以将其拖到“hello”前面。这已经到了那里,但我认为应该有更好的解决方案。
【解决方案2】:

为什么不使用 jQuery,而不是简单地使用 readonly 属性,在单击编辑按钮后删除该属性?

JS Fiddle.

参考资料:

【讨论】:

  • 更好。这样人们仍然可以选择文本。谢谢。
  • firefox 仍然允许您在输入中聚焦和移动光标。授予你不能输入任何东西,但它仍然不理想
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 2011-12-06
  • 2011-08-29
相关资源
最近更新 更多