我正在使用需要在禁用和启用之间来回切换的输入元素。当用户从下拉菜单中选择年份时,应在input元素中禁用该特定年份。但是,当用户更改一年时,应禁用新年。
这是我提出的jQuery。它工作正常,除非它在进行新的更改时不刷新。即可以禁用多年,这不适合应用程序。在任何特定时间只能禁用一年。
$.getJSON('/ResidentialBuilding/getYear', function (data) {
$.each(data, function (index, value) {
$("#standards").append('<input type="checkbox" value="' + value.year + '"' + 'id="' + value.year + '">' + value.year + '</input><br>');
});
});
$("#ResidentialStandardYear").change(function () {
standardValue = $("#ResidentialStandardYear").val();
console.log(standardValue);
disabled = "";
if (standardValue == $("#" + standardValue).attr('id')) {
console.log($('#' + standardValue));
disabled = "disabled";
$('#' + standardValue).attr('disabled', disabled);
}
});
以下是视觉参考的屏幕截图:
答案 0 :(得分:1)
在新复选框上启用一个属性时,您似乎需要清除所有其他"disabled"
属性。应该采取的措施:
$("#ResidentialStandardYear").change(function () {
standardValue = $("#ResidentialStandardYear").val();
console.log(standardValue);
disabled = "";
if (standardValue == $("#" + standardValue).attr('id')) {
console.log($('#' + standardValue));
disabled = "disabled";
$('#' + standardValue).attr('disabled', disabled);
$('input[type=checkbox]').not('#' + standardValue).attr('disabled', false);
}
});
另外,请记住,对.attr('disabled', disabled)
的调用期望是布尔值,而不是字符串。调用.attr('disabled', '')
和.attr('disabled', 'disabled')
都会禁用输入。