ExtJS 阻止验证表单字段的显示:无
Posted
技术标签:
【中文标题】ExtJS 阻止验证表单字段的显示:无【英文标题】:ExtJS Prevent validation for form fields with display: none 【发布时间】:2016-06-23 05:08:09 【问题描述】:我想阻止对带有display: none
的表单字段进行验证。
例如ipv6
设置为display: none
的字段,我不想用isValid()
方法检查这些字段。
var form = new Ext.form.FormPanel(
frame: true,
bodyStyle: 'padding:5px 5px 0;',
items: [
xtype: 'radiogroup',
id: 'ip_type',
fieldLabel: 'IPType',
columns: 2,
items: [
boxLabel: 'IPv4',
name: 'ip_type',
inputValue: 'ipv4',
checked: true
,
boxLabel: 'IPv6',
name: 'ip_type',
inputValue: 'ipv6'
],
listeners:
'change': function(radioGroup, checkedRadio)
if (checkedRadio.inputValue == 'ipv4')
Ext.fly('ip').setStyle(
display: 'block'
);
Ext.fly('ipv6').setStyle(
display: 'none'
);
Ext.getCmp('ip').enable();
Ext.getCmp('ipv6').disable();
else
Ext.fly('ip').setStyle(
display: 'none'
);
Ext.fly('ipv6').setStyle(
display: 'block'
)
Ext.getCmp('ip').disable();
Ext.getCmp('ipv6').enable();
,
id: 'ip',
layout: 'column',
border: false,
hideBorders: true,
items: [
layout: 'form',
items: [
fieldLabel: 'IP',
xtype: 'ipv4field',
name: 'ip',
allowBlank: false,
regex: ipv4_reg,
]
,
html: '/'
,
xtype: 'numberfield',
name: 'netmask',
allowBlank: false,
allowDecimals: false,
minValue: 0,
maxValue: 32,
width: 70
]
,
id: 'ipv6',
layout: 'column',
border: false,
hideBorders: true,
items: [
layout: 'form',
items: [
fieldLabel: 'IP',
xtype: 'textfield',
name: 'ipv6',
allowBlank: false,
regex: ipv6_reg,
]
,
html: '/'
,
xtype: 'numberfield',
name: 'netmaskipv6',
//allowBlank: false,
allowDecimals: false,
minValue: 0,
maxValue: 128,
width: 70
]
]
);
【问题讨论】:
你能添加一些代码吗? 【参考方案1】:为避免验证无线电,您可以使用Ext.form.Radio.disabled
,或者如果您想在表单提交期间发送字段值,您可以将Ext.form.Radio.validationEvent
设置为false
。
最好使用 ExtJS Ext.form.Radio.hidden
属性而不是 css display
。
【讨论】:
谢谢你的回答,关键问题是我有很多隐藏的表单元素,我不希望它们被检测到,无法设置为禁用,我希望我的display: 待检测的块元素以上是关于ExtJS 阻止验证表单字段的显示:无的主要内容,如果未能解决你的问题,请参考以下文章