2011-07-30 50 views
0

要求:使textfields只讀 - 不禁用,用戶不應該能夠點擊該字段,即使一次(或多或少的文本框應該像選擇框一樣)。當用戶在按下tab時應該能夠移動到下一個字段(正常行爲),Internet Explorer應該是用於呈現代碼的瀏覽器。這是我一直在做在完整隻讀模式下轉換HTML文本框

示例代碼是在這裏

<table> 
<tr> 
<td><input type="text" value="test1" onfocus="this.blur()" readonly="true" /></td> 
</tr> 
<tr> 
<td><input type="text" value="test2" onfocus="this.blur()" readonly="true" /></td> 
</tr> 
<tr> 
<td><input type="text" value="test3" onfocus="this.blur()" readonly="true" /></td> 
</tr> 
</table> 

與上面的代碼的問題是 1.用戶能夠點擊一次(閃爍的光標是可見的) 2.按Tab鍵 - 用戶不會移動到下一個字段。

再次僅用於IE。由於

+0

爲什麼你不能使用禁用選項?似乎符合法案。 –

回答

5

爲了解決互聯問題,你可能需要添加tabindex到輸入端:

<input type="text" value="test1" onfocus="this.blur()" readonly="readonly" tabindex="1"/> 
<input type="text" value="test2" onfocus="this.blur()" readonly="readonly" tabindex="2"/> 
<input type="text" value="test3" onfocus="this.blur()" readonly="readonly" tabindex="3"/> 
3

我要說的是,如果你需要的東西,是隻讀的,且不能像一個表單元素,那麼,你不應該使用的表單元素:只使用值作爲文本:

<tr> 
    <td>test1</td> 
</tr> 

這樣:

  • 它並不像一個表單元素,
  • 沒有人會認爲一個人應該能夠修改


如果必要的話,那麼你就可以使用了CSS的樣式呢,有邊框,例如...

2

這將讓你標籤到每一個文本框,但他們不會讓你點擊它們。 使用onclick事件模糊它並設置readonly屬性以防止編輯。

http://jsfiddle.net/aQvGx/

1

您可以使用disabled。它解決了標籤索引問題

<input type="text" disabled="disabled" />