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

时间:2011-10-11 08:07:25

标签: javascript forms validation extjs extjs4

enter image description here

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

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

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

我尝试使用以下内容:

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

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

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

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

提前致谢。

5 个答案:

答案 0 :(得分:11)

从服务器获取错误消息

Ext.getCmp('your_form_id').getForm().findField('field_id_or_field_name').markInvalid('server_error_message');

答案 1 :(得分:2)

我已经找到了解决方案。

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

success:false,
errors:{
    field1:errorMsg1,
    field2:errorMsg2
}

这会将字段标记为无效,如果存在关联错误,则将红色边框应用于字段。

希望这有助于寻找类似事物的人。

答案 2 :(得分:1)

如果您想更改错误消息,请使用setActiveError而不是markInvalid函数。

Ext.getCmp('your_component_id').setActiveError('your_custom_error_message')

答案 3 :(得分:0)

试试这个,它是关于服务器验证,你可以使用json或xml http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/form/xml-form.html

答案 4 :(得分:-1)

Ext.getCmp('#fieldId&#39)。isValid()的;