我有一个包含动态项目的表单面板。有些项目隐藏了例如:
items: [{
xtype: 'textfield',
fieldLabel: 'Field 1',
name: 'theField'
},{
xtype: 'textfield',
fieldLabel: 'Field 2',
name: 'theField'
},{
xtype: 'textfield',
fieldLabel: 'Field 3',
name: 'theField',
hidden: true,
allowBlank : false
}]
但是当我提交我的表格时
if (form.isValid()) {
alert('submit');
}else alert('fail');
将检查所有字段,我的表单将不会提交。
无论如何都有效表格(只显示字段)?如何做到这一点,谢谢
答案 0 :(得分:6)
正如您所说,隐藏字段仍将被验证。相反,您应该禁用该字段,这意味着它将不会被提交,但也不会包含在验证中。
答案 1 :(得分:0)
隐藏字段已经过验证。要禁用或跳过隐藏字段的验证,可以将“skipValidation”设置为true。另外,如果设置了'allowBlank',则将其设置为true。
因此,通常在定义字段并且您已在其上添加验证时,将skipValidation设置为true将禁用该字段的表单提交验证。但是,它不会禁用allowBlank验证。您仍然无法在提交时将字段设置为空。因此,如果您的字段除了需要字段之外还有其他验证,则需要两者。显示字段时重置它们。
//View
xtype:'textfield',
allowBlank:false,
validator: function(){
//custom validation
}
...
//Controller
function(){
...
form.down("#field").skipValidation = true;
form.down("field").allowBlank = true;
...
}