2013-03-12 21 views
0

在Javascript表單中禁用(灰色化)字段的最佳方法是什麼?我曾嘗試disabled="disabled"的形式和它的領域,但對什麼即時做錯了沒有工作例如: -如何禁用Javascript表單中的字段

<form:form id="testForm" method="post" disabled="disabled" action="${pageContext.request.contextPath}/testSave" commandName="testForm"> 
    <tr> 
     <td valign="top" disabled="disabled">Name:&nbsp;</td> 
     <td valign="top"><form:input disabled="disabled" path="fName"/></td> 
    </tr> 
</form:form> 

任何想法呢?

+2

你不能'禁用''​​'元素。 – 2013-03-12 17:11:03

+0

嗯...好的,那麼我怎樣才能在表格中「灰掉」元素? – maloney 2013-03-12 17:11:44

+0

@BradM我覺得OP只是想的一切,他/她能找到 – 2013-03-12 17:11:46

回答

0

請參閱下面的js示例;我希望我的看法與你的願望相符:

http://jsbin.com/avopuf/3/

更改CSS按您的要求。

+0

不知道爲什麼有人反對,但這個工程 - - 感謝您的幫助:) – maloney 2013-03-12 17:35:47

+0

是否有可能以同樣的方式做到這一點下拉列表? – maloney 2013-03-12 17:47:32

+0

是的,這就是爲什麼樣本中增加了「選擇」的樣式! – vrluckyin 2013-03-12 18:01:13

1

使用jQuery你可以做以下禁用特定形式的所有表單字段:

$('#formId').find('input,select,textarea[,other elements]').prop('disabled', true); 
+1

以及他說,他希望它被禁用時,加載,所以將更有意義,在HTML – 2013-03-12 17:17:59

+0

鑑於他包括標籤JavaScript和jQuery我認爲這種類型的答案是受歡迎的。這仍然是一個解決方案 – Stokedout 2013-03-12 17:19:49

+0

@Stockedout - 這似乎並沒有工作。我已經將它附加到了一個下拉式變更偵聽器,但沒有任何反應:'$('#testForm')。find('input,select,textarea')。prop('disabled',true);'是否有另一種方式這個? – maloney 2013-03-13 09:17:28

1

那麼,它的排序取決於你正在嘗試做什麼。

禁用表單域的「確定火災」方式是輸入上的「禁用」和「只讀」組合。在這兩者之間,您可以覆蓋你能想到的一切:

  • 變灰輸入
  • 使輸入不可編輯
  • 使輸入非focasable
  • 保持被髮送的輸入與形式

由於某些瀏覽器不支持禁用的「灰色」部分,覆蓋,最好的辦法就是建立一個自定義的CSS顯示禁用(或只讀)字段的方式,你希望他們展示。

要得到你想要與你的形式做正確的soluiton,看看這裏的兩個屬性之間的區別:http://kreotekdev.wordpress.com/2007/11/08/disabled-vs-readonly-form-fields/

編輯:此外,你可以考慮用文字代替殘疾人投入,如果數據不與表格一起發送。 。 。對於用戶而言,比輸入字段更難以使用。

+1

刪除邊框是一種簡單的方法,使輸入字段顯示爲文字 – 2013-03-12 17:21:14

0

聽起來像你可以使用參考網站刷上HTML。我覺得W3School是一個很好的起點,它有各種在線技術的教程和參考。

專門爲HTMLHTML input tag

此外,它怎麼不工作? (它是不是漸變,或用戶仍然可以鍵入它,...?)

+0

Yeh,它不灰色 - 儘管如果我使用''似乎工作。它如何與標籤一起工作?例如我的問題的'名字'部分? – maloney 2013-03-12 17:27:40

+0

那麼..它是不可能「禁用」一個標籤,因爲它只是文本。你是否想讓它也顯示爲灰色?如果是這樣,您需要在包含標籤的單元格上使用CSS類。然後,當你需要在活動/非活動狀態之間切換時(例如,創建兩個CSS樣式,一個用於活動標籤和另一個用於非活動標籤),通過更改CSS類來設置它的樣式... jQuery有一個簡單的方法來[toggleClass](http:// api.jquery.com/toggleClass/))。 – user1766760 2013-03-12 17:59:24

相關問題