1

下面是用于显示对话框屏幕的 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);
    }
});
4

1 回答 1

1

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

{
    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');
    }
},
于 2013-10-19T00:46:45.563 回答