2011-04-01 73 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