成功提交后重置aurelia验证
我正在利用我的应用程序。我想做的是在成功提交后将表单重置为空值 下面是我的视图类:成功提交后重置aurelia验证,aurelia,Aurelia,我正在利用我的应用程序。我想做的是在成功提交后将表单重置为空值 下面是我的视图类: @inject(Validation) export class Inquire { @ensure(isName) firstName = ''; @ensure(isName) lastName = ''; . . . constructor(validation) { this.validation = validation.on(th
@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
和其他字段设置回空字符串,则会重新触发表单验证。我怎样才能防止这种情况发生
似乎您应该能够在
ValidationGroup
as上调用.clear()
或.destroy()
,但这对我不起作用。ValidationGroup
的clear()方法应该可以。关键是,您必须在清除字段后调用此:
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);
});
};
在较新的Aurelia验证版本(2016年8月之后)中,您需要使用reset
方法:
this.validation.reset()
见下表:
与验证
方法相反的是重置
。不带参数调用reset将取消恢复以前呈现的任何验证结果。您可以提供重置指令,将重置限制为特定对象或属性:
controller.reset();
controller.reset({ object: person });
controller.reset({ object: person, propertyName: 'firstName' });
清除字段后调用this.validation.clear()
对我来说很好。。。你说“不为我工作”是什么意思?你看到控制台中的验证错误或错误了吗。我无法解释为什么它现在可以工作,但在将字段设置回默认值后调用.clear()
是可行的。奇怪的调用.clear()
应该是文档和示例的一部分。我们始终欢迎PR访问文档:)@nemesv您可以将其作为答案发布吗?我肯定会添加一个。我真的很想看到Aurelia取得成功。在较新版本的Aurelia中,它改为this.validation.reset()
。