我有一个带有两个文本框的页面。一旦用户在任何文本框中输入值,则其他文本框应被禁用。下面是我的代码:
<div class="col-md-4">
<input type="text" class="form-control" [(ngModel)]="firstName" [disabled]="lastName"/>
</div>
<div class="col-md-4">
<input type="text" class="form-control" [(ngModel)]="lastName" [disabled]="firstName"/>
</div>
这工作正常,但如果我从文本框中删除值,则其他文本框未启用。
该ngModel
指令似乎改变了disabled
属性绑定的行为。输入元素在ngModel
应用时被禁用,并disabled
绑定到一个空字符串:
<input type="text" [disabled]="''" /> // Enabled
<input type="text" ngModel [disabled]="''" /> // Disabled <== unexpected!!!
<input type="text" ngModel [disabled]="" /> // Enabled
<input type="text" ngModel [disabled]="undefined" /> // Enabled
<input type="text" ngModel disabled /> // Disabled
因此,如果emptyString
为空字符串,则将禁用以下控件:
<input type="text" [(ngModel)]="value" [disabled]="emptyString" /> // Disabled
您可以通过将字符串转换为布尔值来获得预期的行为!!
:
<input type="text" [(ngModel)]="value" [disabled]="!!emptyString" /> // Enabled
这些行为可以在以下堆叠闪电中观察到:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句