可用: 的 Ext.form.Panel :
this.myForm = Ext.create("Ext.form.Panel", {
items : [{
xtype : 'textfield',
name : 'val1',
fieldLabel : 'val1',
allowBlank: false,
validator : function(value) { // validate val1
if (!(/^[a-zA-Z]+[\w]*$/.test(value)))
return "val1 is not valid";
return true;
}
}, {
xtype : 'textfield',
name : 'code',
fieldLabel : 'val2',
allowBlank: false,
validator : function(value) { // validate val2
if (!(/^[a-zA-Z]+[\w]*$/.test(value)))
return "val2 is not valid";
return true;
}
}]
});
然后将其传送到Window:
Ext.window.Window :
this.someWindow = Ext.create("Ext.window.Window", { items : [me.myForm, me.anotherPanel], title : 'test', closeAction : 'hide', buttons : [{ text : 'Save', handler : function() { // some actions }
如何在 someWindow 上验证执行中的 myForm 中的val1和val2:save?
答案 0 :(得分:1)
这将调用验证器函数
handler: function(button) {
var valid = button.up('window').down('form').getForm().isValid();
if(valid) {
...
}
}
修改强>
或者您将保存按钮移动到buttons
配置格式,并将选项formBind: true
添加到按钮。只要表单无效,这将禁用该按钮。
答案 1 :(得分:0)
这些validator
函数将验证值作为用户类型,因此这些值足以进行客户端验证。但是,您还需要对这些值进行服务器端验证,因为javascript可以由知道他们正在做什么的用户在客户端轻松修改。