2009-12-24 198 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元素,并过滤所有输入元素,最后是“禁用”属性适用于他们。