2011-04-01 95 views
10

是否有HTML,JavaScript,或者jQuery的一种方法,使一输入元素“只读”,即浏览器独立只读?

  • 用户可以读取它
  • 用户可以将其内容复制到剪贴板
  • 用户不能更改它

这将在所有浏览器中工作?我知道有一个“只读”属性,但在所有浏览器中都不支持。

我不是在询问安全方面,只是用户体验。

+1

+1只是为了看那些漂亮的独角兽 – 2011-04-01 01:47:11

+0

@Slurpie它支持所有当前浏览器。你需要的是IE8及以下版本的修复程序......(让我们假设它是这样) – 2011-04-01 01:49:41

+0

我希望它能够在所有常用浏览器中工作 – JoelFan 2011-04-01 01:50:35

回答

2

一种方法是假的吧:

<p class="fake_input">The readonly Value</p> 
<input type="hidden" name="real_input" value="The readonly Value" /> 

如果你想让它看起来禁用的输入框,您可以设置样式和材料。

只要记住,人们可以改变隐藏的投入威利。

+0

隐藏用户隐藏 - >不可复制 – bensiu 2011-04-01 01:49:37

+1

@bensiu这就是为什么你有段人们可以看到。 – sdleihssirhc 2011-04-01 01:51:16

+0

好,好主意......现在如何设计它的样式? – JoelFan 2011-04-01 01:51:30

6

,如果你使用jQuery(如你把标签)是跨浏览器:

$(...your input ...).attr('readonly','readonly'); 

编辑:从http://www.w3schools.com/tags/att_input_readonly.asp

的只读属性支持 所有主流浏览器。

+0

这会不可思议地使它跨浏览器? – Jon 2011-04-01 01:49:28

+0

那么你是说jQuery不仅仅是设置“只读”属性?它实际上使它在不支持HTML中的“只读”属性的浏览器中工作? – JoelFan 2011-04-01 01:49:45

+0

这是否允许用户复制文本? – sdleihssirhc 2011-04-01 01:50:38

1

虽然readOnly属性在html中不区分大小写,但必须在js中写入'readOnly'。它在直接分配给IE6以及其他所有浏览器的情况下工作,但分配方式可以是浏览器特定的。

element.setAttribute('readOnly','readOnly')在旧浏览器中不起作用, 但element.readOnly ='readOnly'(或任何真值)工作x浏览器。

+0

如何在jQuery或HTML中设置它? – JoelFan 2011-04-01 16:24:21

+0

谢谢@kennebec!这是我的头脑。@JoelFan - 是的,这在jQuery中也是如此。 – 2012-04-04 22:26:38

相关问题