我正在为我的应用利用aurelia-validation。我想要做的是在成功提交后将表单重置为空值。
这是我的观点类:
@inject(Validation)
export class Inquire {
@ensure(isName)
firstName = '';
@ensure(isName)
lastName = '';
. . .
constructor(validation) {
this.validation = validation.on(this);
};
sendInquiry() {
this.validation.validate()
.then(() => {
// make API call here, which works
// reset fields
this.firstName = '';
. . .
}).catch((validationResult) => {
console.log(validationResult);
});
};
};
如果我将firstName
,lastName
和其他字段设置回空字符串,则会重新触发表单验证。我怎样才能防止这种情况发生?
您似乎应该能够.clear()
上.destroy()
或ValidationGroup
作为referenced here in the source code,但这对我不起作用。
答案 0 :(得分:2)
ValidationGroup
的{{1}}方法应该可以解决问题。关键是你必须在>>之后调用,你已经清除了字段:
clear()
在较新的Aurelia验证版本(2016年8月之后)中,您需要使用sendInquiry() {
this.validation.validate()
.then(() => {
// make API call here, which works
// reset fields
this.firstName = '';
. . .
//this resets the validation and clears the error messages
this.validation.clear();
}).catch((validationResult) => {
console.log(validationResult);
});
};
方法:
reset
请参阅documentation:
this.validation.reset()
方法的反面是validate
。在没有参数的情况下调用reset将取消先前呈现的任何验证结果。您可以提供重置指令以将重置限制为特定对象或属性:reset