在extjs4.2中保存后禁用按钮

时间:2016-01-29 22:40:13

标签: javascript extjs 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);

    }


});

1 个答案:

答案 0 :(得分:2)

保存处理程序的一种方法是调用按钮的setDisabled()方法。

示例:

handler: function() {
   this.setDisabled(true);
   save("frm_A", save);
}

然后,在你的setTimeout中你可以setDisabled(false)。

为了能够有效地执行此操作,您可能需要考虑稍微重构一下您的保存处理程序,例如,通过传递&#34;此&#34;作为保存功能的参数,以便您可以对该参数调用setDisabled(false)。

https://docs.sencha.com/extjs/4.2.5/#!/api/Ext.button.Button-method-setDisabled

希望有所帮助。

相关问题