[英]Disable a button after save in extjs4.2
我在一個保存按鈕上保存了三個標簽,但是在單擊保存按鈕時,我試圖禁用該按鈕,同時將數據保存在三個標簽中,以防止用戶多次單擊保存按鈕,因為我我的功能超時。 有什么幫助嗎?
Ext.onReady(function(){
tabPanel = Ext.create('Ext.tab.Panel', {
region: 'center',
activeTab: 0,
autoScroll: true,
tbar: [{
xtype: 'button',
deferredRender : false,
handler:function(){
save("frm_A", save);
},
}],
items: [
{
id:"panel_A",
html: "<iframe src= '"+A_url +"' width='100%' height='100%' id='frm_A' name='frm_A' frameborder=0 />",
},{
id:"panel_B",
html: "<iframe src='"+B_url+"' width='100%' height='100%' id='frm_B' name='frm_B' frameborder=0 />",
},{
id:"panel_C",
html: "<iframe src= '"+C_url+"' width='100%' height='100%' id='frm_C' name='frm_C' frameborder=0 />",
}]
});
viewport = new Ext.Viewport({
layout:'border',
items:[tabPanel]
});
function save(record){
var Aid = record.getField("NUMBER").getRealValue();
var currentTab = tabPanel.getActiveTab();
tabPanel.setActiveTab(1);
tabPanel.setActiveTab(2);
tabPanel.setActiveTab(0);
tabPanel.setActiveTab(currentTab);
var B= window.frames["frm_B"];
var C= window.frames["frm_C"];
setTimeout(function(){
try {
B.RECORD.getField("ID").setRealValue(Aid);
C.RECORD.getField("ID").setRealValue(Aid);
B.RECORD.update();
C.RECORD.update();
parent.refreshGrid();
parent.win.close();
}
catch(e){
showError(e);
}
}, 4000);
}
});
保存處理程序中的一種方法是調用按鈕的setDisabled()方法。
例:
handler: function() {
this.setDisabled(true);
save("frm_A", save);
}
然后,在setTimeout內部,可以設置setDisabled(false)。
為了能夠有效地做到這一點,您可能需要考慮對存儲處理程序進行一些重構,例如,通過將“ this”作為參數傳遞給保存函數,以便可以對該參數調用setDisabled(false)。
https://docs.sencha.com/extjs/4.2.5/#!/api/Ext.button.Button-method-setDisabled
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.