2009-12-24 188 views
1

我有一個表單的網頁。根據頁面頂部 處的用戶選擇,頁面將禁用表單的各個部分。我的計劃是將 的每個部分放在<div></div>之間。每個部分都包含一些表單元素的集合 。DIV禁用或灰顯

因此,如果用戶不選擇某些標準, 表單的相關部分將被禁用。在典型的Windows類型的應用程序中,這些元素 被禁用並變灰。在網頁上做到這一點的最佳方式是什麼? Javascript可以確定div部分中的表單元素是什麼, 可以通過循環禁用這些元素嗎?我知道我可以禁用 每個元素,如果我知道它,但有沒有辦法找出一些div部分的 元素的所有ID?

是否有可能在基於c#中的標誌變量的頁面加載事件變灰?

回答

1

給你的div元素的ID,然後取它裏面的所有的標籤和殘疾人屬性適用於他們。

var elem = document.getElementById ("div1").getElementsByTagName ("*"); 
for (var i=0; i < elem.length; i ++) 
{ 
    elem[i].disabled = true; 
} 

使控件能夠將disabled屬性設置爲false。

+0

其正確執行 – subramani 2009-12-24 09:37:15

0

大部分的<input>都有一個被禁用的屬性,可以說是通過JavaScript實現的。正如你所提到的,你可以抓住div的孩子,如果你想要禁用的表單元素的類型,只需設置disabled = true

6

使用jQuery你可以做這樣的事情:

$("div.myDiv :input").attr("disabled", "disabled"); 

的 「:輸入」 代表每一個輸入元素。 「div.myDiv」表示類名爲「myDiv」的div。它在這種情況下作爲上下文。所以基本上會發生的是,這個特定div中的所有輸入元素都將被禁用。

相反:

$("div.myDiv :input").removeAttr("disabled"); 
1

使用Jquery來篩選出DIV中的所有輸入元素,然後應用'disabled'屬性。

$(document).ready(function(){ 
     $("#myDiv > *:input").attr("disabled","disabled"); 
    }); 

上面的代碼片斷首先選擇你的DIV #myDiv,然後選擇所有孩子這個DIV元素,並過濾所有輸入元素,最後是「禁用」屬性適用於他們。