2010-02-19 29 views
2

我有一個Web應用程序,其中禁用了字段。它允許「另存爲」功能,這基本上意味着可以將設置複製到新配置中(不需要修改),並且在新配置中可以將其更改爲其他設置。我遇到的問題是,由於這些字段被禁用,它們沒有通過發佈,也沒有出現在服務器端的上下文對象中。ASP.NET 3.5 - 使字段只讀/不可修改而不「禁用」它

當我刪除邏輯來禁用字段時,該部分工作正常。所以剩下的問題是,如何在沒有真正「禁用」它們的情況下「禁用」字段(不允許任何輸入字段中的數據的任何改變)(以便數據在保存時被髮布)?

我最初正在尋找一種方法來做到這一點在CSS中,但不知道它是否存在。最好的解決方案當然是最簡單的解決方案。提前致謝! (注意:通過'禁用'我的意思是「文本框顯示,但它們中的文本都不能被修改」,在點擊它的時候光標是否出現並不重要,但如果我有一個偏好,這將是沒有光標...)

回答

3

http://www.w3schools.com/TAGS/att_input_readonly.asp readonly屬性是你想要的。

+0

完美......它正盯着我臉上:)我只是循環以前被禁用的元素,而不是添加attr只讀,它的工作原理。在JQuery中它看起來像: // disable($(this)); (舊) $(this).attr(「只讀」,「只讀」); (NEW) – n2009 2010-02-19 17:49:44

+0

必須愛簡單的 – 2010-02-19 18:11:32

+0

@ n2009 - 所以對於使用不支持JS的屏幕閱讀器來更改這些字段的用戶來說沒關係。我希望你也在做一些服務器端驗證,以確保它們已被更改。 – tvanfosson 2010-02-19 18:43:13

1

我會建議,而不是從頁面的輸入中使用不可更新的字段值,你從數據庫檢索原始對象,並從那裏複製它們。使用Firebug之類的東西來修改表單將被重新發布以修改值的頁面內容是很平凡的,即使它們被標記爲只讀。既然你真的想從原來的值,我會簡單地重新獲取對象並複製它們。那麼你不必擔心原始(和不可更新的)屬性是否被重新發布。

+0

您甚至不需要Firebug。這可以通過任何標準的瀏覽器地址欄來完成。 – 2010-02-19 18:11:39

+0

我只是給了一個微不足道的方法來做到這一點,而不是列舉所有的微不足道的方法。 – tvanfosson 2010-02-19 18:40:50

相關問題