1

我有一个带有动态项目的表单面板。有些项目已经隐藏,例如:

        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');

这将检查所有字段,并且我的表单不会提交。
反正有有效的形式(只显示字段)?怎么做 谢谢

这是我检查http://jsfiddle.net/jZYcQ/的示例

4

2 回答 2

6

正如您所说,隐藏字段仍将被验证。相反,您应该禁用该字段,这意味着它不会被提交,也不会被包含在验证中。

于 2013-08-22T03:32:23.587 回答
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;
...
}
于 2014-04-03T21:37:21.777 回答