我尝试启用此函数中调用的每个文本字段,但我不想启用type="file"
字段。会发生什么,无论如何都会启用type="file"
字段。我错过了什么吗?
function disabled_fields(fields, state) {
if(state == true) {
$(fields).each(function() {
$(this).attr('disabled', true);
});
} else {
if(state == false) {
$(fields).each(function() {
if($(this).attr('type') != 'file') {
$(this).attr('disabled', false);
}
});
}
}
};
// Runs like this
disabled_fields('input, textarea', false);
答案 0 :(得分:3)
您可以使用.not()
排除元素
function disabled_fields(state) {
$("input,textarea").not("[type='file']").prop("disabled", state);
}
另请注意,您不必遍历每个元素来设置禁用的属性。
答案 1 :(得分:0)
试试这段代码,
function disabled_fields(fields, state) {
if (state == true) {
$(fields).each(function () {
$(this).attr('disabled', true);
});
} else if (state == false) {
$(fields).not("[type='file']").each(function () {
$(this).attr('disabled', false);
});
}
};