1. 程式人生 > >Ext.MessageBox.show驗證問題

Ext.MessageBox.show驗證問題

對於ExtJs初學者,驗證是一個很頭疼的問題,例如我們要驗證Ext.MessageBox.show中是否為空的時候,沒有相關的屬性可以配置,如果使用其回撥函式,驗證完後輸入框會自動關閉,顯然達不到我們的要求,這時候,我們要用其他的辦法解決,我的解決思路是這樣的

首先定義FormPanel面板,我這裡使用全域性變數

//定義全域性變數

var myWin;//定義Ext Window物件

var updateDetailData;//我專案中使用的修改方法

var formPanelCf = new Ext.form.FormPanel({
       autoWidth:true,
       layout:"form",
       frame:true,
       labelWidth:260,
       labelAlign:"right",
       items:[{
        xtype:"label",
        height  : 20
       },{
        xtype : "textarea",
        inputType : 'text',
        height : 150,
        hideLabel : true,
        id:"myid",
        anchor : "95%"
       }]
      });



       //我這裡結合專案情況做一個修改的例子
      updateDetailData = function (type){
                
                var rows = grid2.getSelectionModel().getSelections();
                if (Ext.isEmpty(rows)) {
                    Ext.Msg.alert('提示', '請先選中要操作的專案!');
                    return;
                }
                // var strChecked = jsArray2JsString(rows, 'id');
                var replymsg = jsArray2JsString(rows, 'replymsg');
                Ext.getCmp('myid').setValue(replymsg);
                if (!myWin) {
                    myWin= new Ext.Window({
                        title:"回覆資訊",
                        value:replymsg,
                        modal:true,
                        width:400,
                        height:250,
                        collapsible:false,
                        resizable:false,
                        closeAction:'hide',
                        // items:[formPanelCf] // 將關閉視窗動作設定為隱藏(不銷燬視窗物件)
                        items : formPanelCf,
                        buttons : [{
                            text : '確定',
                            handler : function(){
                                var txt = Ext.getCmp('cancelarea').getValue();
                                txt= Ext.util.Format.trim(txt);// 去空格
                                if(txt == null || txt == ''){
                                    Ext.Msg.alert('提示','請輸入資訊!');
                                    Ext.getCmp('cancelarea').setValue('');
                                }else{
                                    Ext.Ajax.request({
                                        url : 'tjmk.do?method=updateReply',
                                        success : function(response) { // 回撥函式有1個引數
                                            var resultArray = Ext.util.JSON
                                            .decode(response.responseText);
                                            Ext.Msg.alert('提示',
                                                    resultArray.msg);
                                            store2.reload();
                                        },
                                        failure : function(response) {
                                            Ext.MessageBox.alert('提示',
                                            '操作失敗!');
                                        },
                                        params : {
                                            id : type,
                                            replymsg:txt
                                        }
                                    });    
                                    myWin.hide();
                                    formPanelCf.getForm().reset();
                                }
                                // alert(Ext.getCmp('cancelarea').getValue());
                            }
                        }, {
                            text : '取消',
                            handler : function(){
                                myWin.hide();
                                formPanelCf.getForm().reset();
                            }
                        }]
                    });
                    
                }
                myWin.show();
            }