Extjs在Window中验证Panel

时间:2014-04-07 16:28:59

标签: javascript extjs extjs4 panel

可用: 的 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?

2 个答案:

答案 0 :(得分:1)

这将调用验证器函数

handler: function(button) {
     var valid = button.up('window').down('form').getForm().isValid();
     if(valid) {
         ...
     }
}

修改

或者您将保存按钮移动到buttons配置格式,并将选项formBind: true添加到按钮。只要表单无效,这将禁用该按钮。

答案 1 :(得分:0)

这些validator函数将验证值作为用户类型,因此这些值足以进行客户端验证。但是,您还需要对这些值进行服务器端验证,因为javascript可以由知道他们正在做什么的用户在客户端轻松修改。