gpt4 book ai didi

javascript - 动态改变 angular 2 Validators.maxLength 的 maxLength 值

转载 作者:行者123 更新时间:2023-11-30 15:42:35 26 4
gpt4 key购买 nike

在表单组验证中,我尝试应用输入最大长度,但是,这个最大长度取决于表单中的其他操作。如果它们改变,也改变 maxMsgLength 的属性值。

消息:['', Validators.maxLength(this.maxMsgLength)],

然而,在更改 maxMsgLength 之后,验证器坚持旧的 maxMsgLength 值。有没有一种方法可以使用新的 maxLength 值重新启动此验证字段的验证?

代码: 类账户{ 最大消息长度 = 200; 新账户:表格组;

//activated by click on another method
private changeMaxMsgLength() : void {
let values = Object.values(this.accountsStorage);
if(values.includes("oldAccount")) {
this.maxMsgLength = 150;
} else {
this.maxMsgLength = 200;
}
}

ngOnInit(): void {
this.newAccount = this.formbuilder.group({
msg : ['', Validators.maxLength(this.maxMsglength)],
link : ['', Validators.pattern('^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$')],
schedule : ['', Validators.pattern('^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]$')]
});

}

}
//where in template there is


<div class="form-group">
<label for="name">Message</label>
<textarea class="form-control" id="Message" formControlName="msg" style="width: 300px; height: 150px;"></textarea>
</div>
<div class="error" *ngIf="newAccount.get('msg').hasError('maxlength')">
Maximum of {{maxMsglength}} characters
</div>

最佳答案

您可以使用 html 输入的 maxlength 属性:

<input [attr.maxlength]="maxMsgLength" />

关于javascript - 动态改变 angular 2 Validators.maxLength 的 maxLength 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40588357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com