我使用的是Angular 7,只要有两个输入不匹配指定的条件,我就想禁用一个按钮。
我有以下代码:
HTML:
<input type="text" pInputText [(ngModel)]="name" placeholder="placeholder"/>
<input type="text" pInputText [(ngModel)]="identifier" placeholder="identifier"/>
<button pButton type="button" class="ui-button-raised ui-button-rounded" label="Click me!" disabled="{{validateIdentifier() && name.length > 0}}"></button>TS:
private identifier: string = "";
private name: string = "";
validateIdentifier(): boolean {
const REGEXP = new RegExp(/[EHIS]-[0-9]{9}/);
return REGEXP.test(this.identifier);
}因此,当我插入一个匹配以下正则表达式:(E|H|I|S)-[0-9]{9}的字符串,并且插入的name-attribute的长度至少为1时,我希望启用按钮,否则不启用。
遗憾的是,我的按钮在任何输入上都是禁用的(并保持不变)。我在这方面做错了什么?
发布于 2019-02-01 02:39:26
我认为你的布尔逻辑有一个小错误。我认为你想要否定validateIdentifier()的结果,如果不是vailidateIdentifier或者长度是0,那么就禁用。例如。
<button
pButton
type="button"
class="ui-button-raised ui-button-rounded"
label="Click me!"
[disabled]="!validateIdentifier() || name.length === 0">
</button>https://stackoverflow.com/questions/54467148
复制相似问题