<form name="form" aDisabled="true" bDisabled="false">
<fieldset id="a">
<input>
...
</fieldset>
<fieldset id="b">
<input>
...
</fieldset>
</form>
所以我想在 aDisabled 为 true 并且 b 保持启用状态时禁用字段集下的字段,我尝试了下面的 jquery,但这似乎对我不起作用
$("[aDisabled='true'] input:not('#b')").attr('disabled', 'disabled');
您可以禁用表单中的所有fieldset
,除了像这样的#b
$("[aDisabled='true'] fieldset:not(#b)").attr('disabled', 'disabled');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="form" aDisabled="true" bDisabled="false">
<fieldset id="a">
<input type="text">
</fieldset>
<fieldset id="b">
<input type="text">
</fieldset>
</form>
选择器的问题在于 input:not(#a( 表示"没有 ID 的输入",这对于您的所有输入都是正确的。你的意思是"fieldset:not(#a(",或者更准确地说,"fieldset#b">
$("[aDisabled='true'] fieldset#a input").attr('disabled', true);
$("[bDisabled='true'] fieldset#b input").attr('disabled', true);