2013-10-18 82 views
1

下面是extjs3.4來顯示對話框畫面。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

Ext.form.BasicForm有一個isValid函數會返回一個布爾值,每場有一個validatorconfig 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'); 
    } 
},