我有一个表单,其中某些字段需要在服务器端验证。
提交表单后,服务器会验证这些字段的值,如果验证失败,则服务器返回成功:false(以及验证失败的每个字段的名称和错误消息)。
现在,我需要显示“无效”这样的字段,并在它们周围应用相同的红色边框,如果客户端验证失败,则默认由ExtJS完成。
我尝试使用以下内容:
Ext.getCmp('fieldId')。markInvalid()和invalidCls:'x-form-invalid-field'
我在form.submit的'failure'回调函数中使用了上述语句。这些陈述被调用但不对这些字段产生任何影响。
因此,任何人都可以指导以下内容:
当自定义验证失败时,如何标记字段invaild并在其周围应用相同的效果(具有红色边框)?
提前致谢。
答案 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()的;