ExtJs - 无法在点击事件中获得预定义的id值

时间:2010-10-19 08:28:36

标签: extjs

当我点击按钮时,它会激活ajax调用并发送按钮的id和请求。 除了我预定义的按钮ID之外的其他工作没有请求。它带有价值'ext6-gen'。有谁知道我想要做什么来获得我的预定义ID。

//i defined a container with a textfield and button
var c2 = Ext.extend(Ext.Container, {
   id : c2, initComponent : function() {
      this.items = [ {
         xtype : 'textfield', id : 'c3'}
      , {
         xtype : 'button', id : 'c4'} //it has id!!!
      ], c2.superclass.initComponent.call(this); }
   }
); 

Ext.onReady(function() {
   var HttpReq = function(e, t) {
      var elm = Ext.get(e.target); 
      Ext.Ajax.request( {
         loadMask : true, 
         url : 'Default.sample', 
         params : {id : elm.id}, 
         success : function(resp) {alert(resp.responseText); }
         }); 
      }; 
      Ext.get('c4').on('click', HttpReq); //i assign click event to button
}); 

我找到了一些东西。 ext按钮元素用表格包装html输入元素。该html元素的id不同于ext按钮元素。

但是仍然不知道如何在事件调用中获取ext按钮元素。

谢谢。

2 个答案:

答案 0 :(得分:1)

而不是

params : {id : elm.id}, 

params : {id : e.id}, 

答案 1 :(得分:0)

终于找到了!

我知道这很愚蠢,但需要一天才能找到它:(。

我只是将e.id更改为this.id然后它发送包装器ext元素的id。

Ext.onReady(function() {
   var HttpReq = function(e, t) {
      //var elm = Ext.get(e.getTarget());
      //var targetEl = Ext.fly(elm.id);
      //alert(this.id);
      //elm.highlight();
      Ext.Ajax.request( {
         loadMask : true, url : 'Default.sample', params : {
            id : this.id}
         , success : function(resp) {
            alert(resp.responseText); }
         }
      ); }; 

进行。