ExtJS 4 - 如果自定义验证失败,如何将表单字段标记为无效并在其周围显示红色边框(由ExtJS默认完成)?

net*_*emp 7 javascript forms validation extjs extjs4

在此输入图像描述

我有一个表单,其中一些字段需要在服务器端验证.

提交表单时,服务器验证这些字段的值,如果验证失败,则服务器返回成功:false(以及验证失败的每个字段的名称和错误消息).

现在,我需要显示"无效"字段,并在它们周围应用相同的红色边框,如果客户端验证失败,则默认由ExtJS完成.

我尝试使用以下内容:

Ext.getCmp('fieldId').markInvalid()和invalidCls:'x-form-invalid-field'

我在form.submit的'failure'回调函数中使用了上述语句.调用这些语句但不对这些字段应用任何影响.

因此,任何人都可以指导以下内容:

当自定义验证失败时,如何标记字段invaild并在其周围应用相同的效果(具有红色边框)?

提前致谢.

Kld*_*Kld 11

从服务器获取错误消息

Ext.getCmp('your_form_id').getForm().findField('field_id_or_field_name').markInvalid('server_error_message');
Run Code Online (Sandbox Code Playgroud)


net*_*emp 3

我已经找到了解决方案。

如果服务器端验证失败,则需要从服务器返回以下内容:

success:false,
errors:{
    field1:errorMsg1,
    field2:errorMsg2
}
Run Code Online (Sandbox Code Playgroud)

这本身会将字段标记为无效,并在存在关联错误时将红色边框应用于字段。

希望这可以帮助正在寻找类似东西的人。