如何在角度js中禁用Div

时间:2017-08-14 06:16:33

标签: javascript angularjs

我尝试使用fieldset,但是禁用了仅禁用输入字段和剩余下拉列表。我的问题有解决方案吗?

2 个答案:

答案 0 :(得分:1)

问题

我认为你试图做的是在div上放置条件,当条件为真时,你想要禁用div和所有子元素。

您可以使用ng-disabled将div标记为已禁用,如下所示:

<div ng-disabled="expression">
    <input type="text"> <!-- Won't be disabled! -->
    <select> <!-- Also won't be disabled! -->
        <option value="1">option 1</option>
    </select>
</div>

但是,它不会传播到子元素。

在此处查看doco for ng-disabled:https://docs.angularjs.org/api/ng/directive/ngDisabled

解决方案

您必须将ng-disabled属性添加到要禁用的div中的每个子元素。

<div>
    <input type="text" ng-disabled="expression">
    <select ng-disabled="expression">
        <option value="1">option 1</option>
    </select>
</div>

附加

保持div上的ng-disabled属性以禁用子元素,但它可以用作有用的css选择器。

例如,您可能希望在禁用时为整个div设置不透明度。

<div class="special-div" ng-disabled="expression">
    <input type="text" ng-disabled="expression">
    <select ng-disabled="expression">
        <option value="1">option 1</option>
    </select>
</div>

使用此css

div.special-div[disabled] {
    opacity: 0.5;
}

答案 1 :(得分:1)

试试这个,

document.getElementById(“yourDivID”)。style.pointerEvents =“none”;

例如:

<div id="myDiv"> <h1>This is my division</h1> </div>

然后代码如下:

document.getElementById("myDiv").style.pointerEvents = "none";