ext事件传值

悬赏:30 发布时间:2008-07-17 提问人:z65986832 (初级程序员)

老问题
<sricpt>
fucntion ok(a,b){
alert(a);
alert(b);
}
</sricpt>
<input type='button' id='a' onclick='ok('a','b');'/>
<input type='button' id='b' onclick='ok('a','b');'/>

在ext中 我的写Ext.get('a') Ext.get('b') 那我如何像上面一样获取值?如果有很多button怎么办

问题补充:
获取所有element之后用each只能得到element的属性和执行function 但是没有类似于onclick的事件啊 无法在某个按钮按下时执行 高手请继续指教 观望中
该问题已经关闭: 超过15天由系统自动关闭,悬赏平分给所有参与回答的会员

回答

Ext.DomQuery.select()采用CSS select 能得你所需要的所有DOM element[],之后只要[].each(function),不过Ext中[]没有each方法,可以自己加上去。
如果自己愿意,可以包成Ext.util.MixedCollection的数组类型,这中间有each方法可以用。
jljlpch (初级程序员) 2008-07-17
function ok(a,b){
return function(){
alert(a)
alert(b)
}
}
绑定事件
Ext.get("a").on("click",ok(a,b))

Ext.get("a").on("click",ok.createDelegate(this,true,[a,b]))
nihongye (中级程序员) 2008-07-17
好像Ext的模板能解决你的问题,具体的我也没有过多了解,我只是给你提一个思路.
qichunren (资深程序员) 2008-07-29
假设多个button都在formpanel上:
formpanel.getForm().items.each(function(f){
			        if (f.xtype == 'button') {
			        	f.getValue()?f.setValue(false):f.setValue(f.el.dom.value);
			        }
			    });
zlq4863947 (初级程序员) 2008-07-31