Extjs4.1 - 在隐藏字段中提交有效表单允许空白为假
Posted
技术标签:
【中文标题】Extjs4.1 - 在隐藏字段中提交有效表单允许空白为假【英文标题】:Extjs4.1 - Submit Valid form within hidden field has allowblank false 【发布时间】:2013-08-22 03:19:05 【问题描述】:我有一个包含动态项目的表单面板。有些项目已经隐藏,例如:
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/
【问题讨论】:
【参考方案1】:正如您所说,隐藏字段仍将被验证。相反,您应该禁用该字段,这意味着它不会被提交,也不会被包含在验证中。
【讨论】:
确实,我设置了隐藏和禁用,它就像一个魅力!多谢兄弟! :-)【参考方案2】:验证隐藏字段。要禁用或跳过对隐藏字段的验证,您可以将“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;
...
【讨论】:
以上是关于Extjs4.1 - 在隐藏字段中提交有效表单允许空白为假的主要内容,如果未能解决你的问题,请参考以下文章
在提交 IFRAME 表单之前,将父 url 保存到隐藏字段