[英]Disable CheckBox Dynamically using JQuery
我在表单中有一组复选框。 我正在遍历集合以检查和/或禁用复选框。 检查工作正常; 但是,我在检查复选框是否已禁用时遇到问题。 即使启用了复选框,它也始终返回false。 我一遍又一遍地看了一下代码,没有发现任何可能导致这种情况发生的东西。
部分HTML文件
<label class="col-lg-3"><div style="padding-left:5px;">View Department</div></label>
<div class="col-lg-1"><input id="Accounting" name="Accounting" type="checkbox" /> </div>
<label class="col-lg-3"> Finance</label>
<div class="col-lg-1"><input id="Finance" name="Finance" type="checkbox" /></div>
<label class="col-lg-3"> Marketing</label>
<div class="col-lg-1"><input id="Marketing" name="Marketing" type="checkbox" /></div>
<div class="col-lg-12">
<hr style="width:100%;" />
</div>
//这就是我禁用复选框的方式
var collection = document.getElementById('DepartmentClassModal').getElementsByTagName('input');
if (typeof (e) !== 'undefined') {
if (e) {
switch (e) {
case 'Education':
for (var i = 0; i < collection.length ; i++) {
if ((collection[i].id == 'Accounting') || (collection[i].id == 'Finance')) {
collection[i].disabled = true
} else {
collection[i].disabled = false
}
}
break;
}
}
}
//渲染HTML
<input checked="checked" id="Accounting" name="Accounting" type="checkbox" disabled>
//检查该字段是否被禁用
var isAccountingDisabled = $('#Accounting').is(':disabled');
//上面的代码总是返回false。 这是为什么?
我添加了checkbox属性的屏幕快照,显示该复选框已自动选中并禁用。 即使该复选框呈现为禁用状态,该属性也不会将其显示为禁用状态。
您不能有多个具有相同id
元素。 在循环结构中,您还可以将循环索引添加到id中,以使其唯一。 ( Accounting1, Accounting2...
)
将您的代码更改为这样
var checkBoxesCollection = $("#yourparentelement").find("input:checkbox[name='Accounting']");
$.each(checkBoxesCollection, function(){
if (this.disabled) {
};
});
使用===
代替==
for (var i = 0; i < collection.length ; i++) {
if ((collection[i].id === 'Accounting') || (collection[i].id === 'Finance')) {
collection[i].disabled = true
} else {
collection[i].disabled = false
}
}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators
我无法使用$('#Accounting')。is(':checked');读取属性。 但是,我可以使用以下语法阅读它们。
var collection = document.getElementById('DepartmentClassModal').getElementsByTagName('input');
$.each(collection, function (index, item) {
ListDepartments[item.name + "Disabled"] = item.disabled;
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.