disabled 属性不适用于 select 标记上的必需属性

disabled attribute doesn't work with required attribute on select tag

提问人:smartmouse 提问时间:9/12/2016 最后编辑:smartmouse 更新时间:10/7/2016 访问量:797

问:

我有以下部分的HTML模板:

<div class="row">
    <div class="medium-3 columns">
        <label>Category
        <select [(ngModel)]="item.cat" name="cat" required>
            <option *ngFor="let a of categories" [ngValue]="a">{{a.name}}</option>
        </select>
        </label>
    </div>

    <div class="medium-3 columns">
        <label>Categoria
        <select [(ngModel)]="item.place" name="place" [disabled]="!item.cat">
            <option *ngFor="let c of places" [ngValue]="c">{{c.name}}</option>
        </select>
        </label>
    </div>
</div>

如您所见,第二个被禁用,直到用户从第一个选择中选择一个选项。因此,如果用户从第一个选项中选择一个选项,则第二个选项将变为活动状态。select

现在,我甚至想将属性添加到第二个选择中。但是如果我这样做,第二个总是被禁用的。requiredselect

这种行为是不是很奇怪?

这是 Plunker(感谢 Stefan Svrkota)。

选择 所需的角度 angular2-forms disabled-input

评论

2赞 Stefan Svrkota 9/12/2016
好吧,我只是试图重新创建这个问题,但您的代码对我来说效果很好。下面是带有代码预期行为的 plnkr,请查看: plnkr.co/edit/QX3LfN
0赞 Günter Zöchbauer 9/12/2016
您可能需要更新到最新的 Angular2 版本。
0赞 smartmouse 9/12/2016
@GünterZöchbauer我已经有了最新版本(RC6)。
1赞 smartmouse 9/12/2016
@StefanSvrkota 您的代码有效,但不能满足我的需要。您添加 on 标签而不是 .我希望第二个菜单的项目既不可选择也不可见。disabledoptionselectselect
0赞 smartmouse 9/12/2016
迷雾加深了:如果 Angular 禁用标签有积极的条件,它就会起作用。例如,如果我使用 [disabled]=“firstSelect” 而不是 [disabled]=“!firstSelect”,它可以毫无问题地工作。

答:

0赞 Deepender Sharma 10/7/2016 #1

[disabled] 适用于布尔表达式,如果表达式返回/计算结果为 true,它将被禁用,否则不会。在您的例子中,您已将 disabled 属性绑定为数字值。这什么都没评估