我自己没有尝试过,但我认为你必须听听 change 文本字段的事件以及值更改时,您必须重新计算该值。
change
因此,对于每个输入文本字段,将其添加到控制器:
control: { 'button[action=submitBtn]': { tap: 'submitbutton' }, // this should call your submitbutton function which calculates the values // every time the value of textfield1 changes txtField1: { change: 'submitbutton', } }
Ext.define('Calc.view.Main',{ extend:'Ext.form.Panel', 全屏:真实,
config: { items: [ { layout:'vbox', style:'background-color:blue', flex:1, items:[ { xtype:'textareafield', name:'display', style:'border:5px inset blue', id:'display', value:"0" } ] }, { layout:'hbox', style:'background-color:#cccccc', flex:1, items :[ { xtype:'button', text:'1', style:'border:5px inset blue', flex:1, ui:'confirm', handler: function() { var num=Ext.getCmp('display').getValue(); if(num==0) { Ext.getCmp('display').setValue("1"); } else { num=num+"1"; Ext.getCmp('display').setValue(num); } console.log(num); } }, { xtype:'button', text:'2', flex:1, style:'border:5px inset blue', ui:'confirm', handler: function() { console.log("print 2"); var num=Ext.getCmp('display').getValue(); if(num==0) { Ext.getCmp('display').setValue("2"); } else { num=num+"2"; Ext.getCmp('display').setValue(num); } console.log(num); /*Ext.getCmp('display').setValue("2"); var num=Ext.getCmp('display').getValue(); num=num*10+1; Ext.getCmp('display').setValue(num); console.log(num);*/ } }, { xtype:'button', text:'3', style:'border:5px inset blue', flex:1, ui:'confirm', handler: function() { console.log("print 3"); var num=Ext.getCmp('display').getValue(); if(num==0) { Ext.getCmp('display').setValue("3"); } else { num=num+"3"; Ext.getCmp('display').setValue(num); } console.log(num); } } ] }, { layout:'hbox', style:'background-color:#909090', flex:1, items:[ { xtype:'button', text:'4', style:'border:5px inset blue', flex:1, ui:'confirm', handler: function() { console.log("print 4"); var num=Ext.getCmp('display').getValue(); if(num==0) { Ext.getCmp('display').setValue("4"); } else { num=num+"4"; Ext.getCmp('display').setValue(num); console.log(num); } } }, { xtype:'button', text:'5', flex:1, style:'border:5px inset blue', ui:'confirm', handler: function() { console.log("print 5"); var num=Ext.getCmp('display').getValue(); if(num==0) { Ext.getCmp('display').setValue("5"); } else { num=num+"5"; Ext.getCmp('display').setValue(num); } console.log(num); } }, { xtype:'button', text:'6', flex:1, style:'border:5px inset blue', ui:'confirm', handler: function() { console.log("print 6"); var num=Ext.getCmp('display').getValue(); if(num==0) { Ext.getCmp('display').setValue("6"); } else { num=num+"6"; Ext.getCmp('display').setValue(num); } console.log(num); } } ] }, { layout:'hbox', style:'background-color:#A0A0A0', flex:1, items:[ { xtype:'button', text:'7', style:'border:5px inset blue', flex:1, ui:'confirm', handler: function() { console.log("print 7"); var num=Ext.getCmp('display').getValue(); if(num==0) { Ext.getCmp('display').setValue("7"); } else { num=num+"7"; Ext.getCmp('display').setValue(num); } console.log(num); } }, { xtype:'button', text:'8', style:'border:5px inset blue', flex:1, ui:'confirm', handler: function() { console.log("print 8"); var num=Ext.getCmp('display').getValue(); if(num==0) { Ext.getCmp('display').setValue("8"); } else { num=num+"8"; Ext.getCmp('display').setValue(num); console.log(num); } } }, { xtype:'button', text:'9', style:'border:5px inset blue', flex:1, ui:'confirm', handler: function() { console.log("print 9"); var num=Ext.getCmp('display').getValue(); if(num==0) { Ext.getCmp('display').setValue("9"); } else { num=num+"9"; Ext.getCmp('display').setValue(num); } console.log(num); } } ] }, { layout:'hbox', style:'background-color:#808080', flex:1, items: [ { xtype:'button', text:'+', style:'border:5px inset blue', flex:1, ui:'confirm', handler: function() { var num = new Array(); num=Ext.getCmp('display').getValue(); var len=num.length; console.log(len); var sub=num.substr(len-1,len); console.log(sub); if(sub!= "+" && sub!="-" && sub!="*" &&sub!="/") { num=num+"+"; Ext.getCmp('display').setValue(num); } console.log("print +"); } }, { xtype:'button', text:'0', flex:1, style:'border:5px inset blue', ui:'confirm', handler: function() { console.log("print 0"); var num=Ext.getCmp('display').getValue(); if(num==0) { num=num+"0"; Ext.getCmp('display').setValue(num); } else { num=num+"0"; Ext.getCmp('display').setValue(num); console.log(num); } } }, { xtype:'button', text:'=', flex:1, style:'border:5px inset blue', ui:'confirm', handler: function() { console.log("print ="); var exp=new Array(); exp=Ext.getCmp('display').getValue(); var len=exp.length; var sub=exp.substr(len-1,len); console.log(sub); if(sub!= "+" && sub!="-" && sub!="*" && sub!="/") { console.log(eval(exp)); Ext.getCmp('display').setValue(eval(exp)); } } } ] }, { layout:'hbox', style:'background-color:#2FAA96', flex:1, items: [ { xtype:'button', text:'-', flex:1, style:'border:5px inset blue', ui:'confirm', handler: function() { console.log("print -"); var num = new Array() num=Ext.getCmp('display').getValue(); var len=num.length; var sub=num.substr(len-1,len); if(sub!= "+" && sub!="-" && sub!="*" &&sub!="/") { num=num+"-"; Ext.getCmp('display').setValue(num); console.log("print -"); } } }, { xtype:'button', text:'*', style:'border:5px inset blue', flex:1, ui:'confirm', handler: function() { console.log("print *"); var num = new Array() num=Ext.getCmp('display').getValue(); var len=num.length; var sub=num.substr(len-1,len); if(sub!= "+" && sub!="-" && sub!="*" &&sub!="/") { num=num+"*"; Ext.getCmp('display').setValue(num); console.log("print *"); } } }, { xtype:'button', text:'/', style:'border:5px inset blue', flex:1, ui:'confirm', handler: function() { console.log("print /"); var num = new Array() num=Ext.getCmp('display').getValue(); var len=num.length; var sub=num.substr(len-1,len); if(sub!= "+" && sub!="-" && sub!="*" &&sub!="/") { num=num+"/"; Ext.getCmp('display').setValue(num); console.log("print /"); } } }, ] }, { layout:'hbox', flex:8, style:'background-color:red', items: [ { xtype:'button', text:'clear', style:'border:5px inset blue', flex:1, ui:'small', handler: function() { var cl=Ext.getCmp('display').getValue(); cl=""; Ext.getCmp('display').setValue(cl); } }, { xtype:'button', text:'cancel', flex:2, ui:'back', handler:function() { var no= new Array(); no=Ext.getCmp('display').getValue(); var len=no.length; var sub=no.slice(0,len-1) console.log(sub); Ext.getCmp('display').setValue(sub); } } ] } ] }
});