jquery启用/禁用基于变量的表单字段部分

时间:2016-05-05 22:19:38

标签: javascript jquery html angularjs forms

<form name="form" aDisabled="true" bDisabled="false">
<fieldset id="a">
<input> 
...
</fieldset>
<fieldset id="b">
<input> 
...
</fieldset>
</form>

所以我想在aDisabled为true且b保持启用时禁用fieldset下的字段,我尝试了下面的jquery但这对我来说似乎不起作用

$("[aDisabled='true'] input:not('#b')").attr('disabled', 'disabled');

2 个答案:

答案 0 :(得分:1)

您可以停用表单中的所有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>

答案 1 :(得分:0)

选择器的问题在于输入:not(#a)表示“没有ID的输入”,对于所有输入都是如此。 你的意思是“fieldset:not(#a)”或更准确地说,“fieldset #b”

$("[aDisabled='true'] fieldset#a input").attr('disabled', true);
$("[bDisabled='true'] fieldset#b input").attr('disabled', true);