【问题标题】:jquery enable/disable form field section based on variablejquery基于变量启用/禁用表单字段部分
【发布时间】:2016-08-31 20:52:02
【问题描述】:
<form name="form" aDisabled="true" bDisabled="false">
<fieldset id="a">
<input> 
...
</fieldset>
<fieldset id="b">
<input> 
...
</fieldset>
</form>

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

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

【问题讨论】:

    标签: javascript jquery html angularjs forms


    【解决方案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>

    【讨论】:

    • $("[aDisabled='true'] fieldset:not(#b)").attr('disabled', 'disabled');
    • 我不明白你的评论,你能不能用你的实际HTML 创建jsfiddle.net/Lg0wyt9u 并说出你想要禁用的内容。
    • 我说如果没有 fieldset id="b" ,fieldset id="a" 中只有输入字段,而一些输入字段直接在表单中
    • 然后,您只需选择并禁用 ID 为 a jsfiddle.net/Lg0wyt9u/753fieldset,或者如果您想在 fieldset 中选择特定元素,您可以像这样定位它们 jsfiddle.net/Lg0wyt9u/755
    • 是的,但是你如何反转条件而不是禁用表单级别的那个而不启用 fieldset id="a" 下的那个?
    【解决方案2】:

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

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

    【讨论】:

    • 可以说我没有字段集 id=b。我将如何过滤除字段集 id=a 之外的所有内容?
    • fieldset:not(#a) 如上所述。
    猜你喜欢
    • 2010-11-26
    • 2015-01-05
    • 2011-04-12
    • 2010-12-04
    • 1970-01-01
    • 2015-12-29
    • 2011-04-13
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多