【发布时间】:2023-03-09 06:49:02
【问题描述】:
我必须真诚地感谢 Darren Davies 对我制作测试 html 文件的以下代码的帮助。
<html>
<head>
<title>field_enable</title>
<script type="text/javascript" src="script/jquery.js"></script>
<script>
$().ready(function() {
$('#clicker').click(function() {
$('input').each(function() {
if ($(this).attr('disabled')) {
$(this).removeAttr('disabled');
}
else {
$(this).attr({
'disabled': 'disabled'
});
}
});
});
});
</script>
</head>
<body>
<div id='clicker' style='background-color:#FF0000; height:20px; width:50px;'></div>
<br>
<input type='text' disabled></input>
<input type='text' disabled></input>
<input type='text' disabled></input>
</body>
</html>
这非常有效,但是我的表单有大量的 if 字段,在这些字段中我只需要为各种客户端禁用某个字段。当我应用代码时,它肯定会激活我禁用的字段,但是它也会禁用表单中的其余字段,即使它们没有设置属性。我现在的问题是解决如何仅激活我已禁用的字段并保留其余字段。
【问题讨论】:
-
你只需要取出else块
-
您确实需要通过对元素使用类来进行更好的控制。一个元素可以有多个类。然后,您可以根据客户端定位特定的类。如果您不将一些结构构建到适用于各种条件的表单中,那么使用通用 dom 搜索选择器进行狩猎和啄食将很难看
-
因为您使用的是 jQuery。对于此类情况,请使用 .prop()。它专门用于没有值的属性,例如选择和禁用。要获取它是否已禁用您将编写 $("selector").prop("disabled") 并禁用它 $("selector").prop("disabled", true)
标签: javascript jquery html forms