Extjs3.4对输入值的验证

时间:2013-10-18 07:32:32

标签: validation extjs

下面是extjs3.4以显示对话框屏幕。

我无法获得验证的输入值。

任何人都可以帮忙看看我应该在哪里捕获输入值并在提交给系统之前实施验证?非常感谢。

RemarkDialog = Ext.extend(Ext.Window,{
    modal:true,
    resizable:true,
    layout:"form",
    width:400,
    title:"Enter Comment",
    initComponent:function(){
        this.items = [{
            xtype: 'form',
            ref: 'formPanel',
            layout: 'fit',
            items: [{
                autoscroll:true,
                hideLabel: true,
                name: 'Remarks',
                itemId: "Remarks",
                xtype: 'textarea',
                maxlength : 55, 
                allowBlank: false
            }]
        }];

        this.bbar = [
            '->',
            {
                itemId:'submit',
                text:'Submit',
                handler:function(btn,e){
                    this.fireEvent('submitpressed', this.formPanel.getForm().getFieldValues());
                    this.destroy();
                },
                scope:this
            },{
                itemId:'cancel',
                text:'Cancel',
                handler:function(btn,e){
                    this.destroy();
                },
                scope:this
            }
        ];

        RemarkDialog.superclass.initComponent.call(this,arguments);
    }
});

1 个答案:

答案 0 :(得分:1)

Ext.form.BasicForm有一个isValid函数会返回一个布尔值,每个字段都有validator config parameter,您可以在其中提供自己的验证函数。例如,字段配置可能如下所示:

{
    xtype: 'textarea',
    validator: function(value) {
        return /.+pink.+/.test(value);
    }
}

您的表单提交处理程序可以设置如下:

handler:function(btn,e){
    if(this.formPanel.getForm().isValid()) {
        this.fireEvent('submitpressed', this.formPanel.getForm().getFieldValues());
        this.destroy();
    }
    else {
        alert('your textarea needs more pink');
    }
},