<script type="text/javascript"> Ext.onReady(function(){ var tempWindow = new Ext.Window({ title:"登陆", layout:"form", plain:true,
items:[ {xtype:"textfield",fieldLabel:"用户名"}, {xtype:"textfield",fieldLabel:"密码"} ], buttons:[ {text:"登 陆"}, { text:"取 消", handler:function(){ alert(this.text);//这里的this是handler处理该组件的对象,可以通过this来获得配置的相关属性 //个人暂时的理解为this取消这个按钮,他的父级是buttons,在父一级才是window窗口 //注意items是个属性,并不是个数组,如果想访问的话就必须使用itemAt来定位那个组件 // alert(this.ownerCt.ownerCt.items[0].getValue());这种写法在ExtJs3.2中是错误的 alert(this.ownerCt.ownerCt.items.first().getValue());//获得items里第一个表单中的值 alert(this.ownerCt.ownerCt.items.itemAt(1).getValue());//获得items里第二个表单中的值 alert(this.ownerCt.ownerCt.title);//获得window的名称 alert(this.ownerCt.ownerCt.buttons[0].text);//获得button中的值 } } ] }); tempWindow.show(); }); </script> |
- 如果程序提供了this,那么该this是指的提供handler的对象,这里的this指的是button
- This.ownerCt组件访问容器组件,这里可以同this.ownerCt.title可以放放window当中的属性
- 如果想得到items对象,那么方法为:this.ownerCt.items,返回的是个集合MixedCollection,可以查看api得到更多的属性值
- 如何获得items当中第一个元素呢,通过this.ownerCt.items.first().getValue()方法可以获得items里面第一个元素当中的值
问题:如何得到items当中两个输入框当中的内容呢?
this.ownerCt.ownerCt.items.itemAt(1).getValue()
- 方法在button当中添加一个handler通过这里的this可以获得items,在通过items得到其中的值
- This.ownerCt.items可以获得该上下文当中的items对象;
- 通过该对象的first()方法可以获得姓名的表单和密码的表单对象,通过该对象的getValue方法来获得输入的值
- itemsAt这个方法的起始值是从0开始的
- 直接alert(temp)就可以了
- 也可以使用Ext.getCmp()可以通过id来获得组件对象