Ext.MessageBox.show驗證問題
阿新 • • 發佈:2019-01-07
對於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(); }