【发布时间】:2009-05-05 17:10:54
【问题描述】:
我有一个复选框,当它被选中时我想启用一个表及其子控件,当它被禁用时我想做相反的事情。
我已经明白我必须迭代表的所有子控件,我的问题是是否有任何好的通用方法。
提前致谢,
盎司。
【问题讨论】:
标签: c# javascript
我有一个复选框,当它被选中时我想启用一个表及其子控件,当它被禁用时我想做相反的事情。
我已经明白我必须迭代表的所有子控件,我的问题是是否有任何好的通用方法。
提前致谢,
盎司。
【问题讨论】:
标签: c# javascript
您可以通过 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;
}
【讨论】:
例如,使用框架(使用 Prototype.js)来处理选择器和类名要容易得多。
单击此项目时,启用所有具有“mycontrols”类的项目。
$('containerDiv').select('.mycontrols').each(function(element){element.disabled=false})
【讨论】: