【问题标题】:Showing serverside validation errors in extjs在 extjs 中显示服务器端验证错误
【发布时间】:2018-01-12 07:12:21
【问题描述】:
对于表单字段,我们可以使用validator 和validation 函数来验证并显示extjs 中的错误。如何显示服务器端验证的类似错误?即验证发生在后端,如果满足某个条件,则应显示错误。
我尝试过使用markInvalid("message"),但这只会突出显示该字段并且不显示消息,并且当用户点击该字段时,突出显示也会消失。
任何建议表示赞赏。谢谢。
【问题讨论】:
标签:
javascript
validation
extjs
【解决方案1】:
markInvalid 实际上是官方的方式。默认情况下,消息显示在工具提示中,您可以通过msgTarget: 'under'更改。
如果你想保留错误信息,那么你必须问自己,直到什么时候。例如,当我更改字段中的值时,它应该不再显示错误消息。
要在值更改之前保留服务器的消息,您必须在字段中添加自定义验证器:
validator: function(val) {
if(this.invalidValue && val==this.invalidValue) return this.invalidMsg;
return true;
}
然后,当消息从服务器返回时,调用:
field.invalidValue = field.getValue();
field.invalidMsg = msg;
field.validate();