如何启用\禁用表的所有子控件?

时间:2009-05-05 17:10:54

标签: c# javascript

我有一个checkBox,当它被检查时我想启用一个表及其子控件,当它被禁用时我想反过来。

我已经明白我必须迭代表的所有子控件,我的问题是是否有任何好的和通用的方法。

提前致谢,

盎司

2 个答案:

答案 0 :(得分:2)

您可以使用 jQuery 执行此操作。假设你的HTML看起来像这样:

<input type="checkbox" onclick="toggleControls(this)"/>Controls Disabled
<table id="myTable">
 <tr>
  <td>Name: <input type="text" /></td>
  <td>Select: <input type="radio" /></td>
 </tr> .....

toggleControls()函数用于禁用/启用表格中的所有控件这意味着所有文本框,按钮,复选框,单选按钮和下拉列表)如下所示:

<script>
   function toggleControls(e){
     $('#myTable input,select,textarea').attr('disabled',e.checked);
   }
</script>

jQuery的css选择器使一行禁用/启用控件。使用普通的旧javascript,函数将如下所示:

var myTable = document.getElementById("myTable");
var controls= myTable.getElementsByTagName("input"); 
// Repeat the previous line for "select" and "textarea"
for(i = 0; i < controls.length; i++) {
    control = controls[i];
    control.disabled = !control.disabled;        
}

答案 1 :(得分:1)

使用框架(例如使用Prototype.js)使用选择器和类名更容易。

单击此项目时,启用“mycontrols”类的所有项目。

$('containerDiv').select('.mycontrols').each(function(element){element.disabled=false})