2016-01-11 33 views
-2

我想擴展Extjs選擇器的擴展名。我想當用戶在選擇器中鍵入文本時,調用一個函數。我使用change事件,它不起作用。如何在extjs文本字段選擇器中獲取更改事件

我想擴展一個像combobox一樣的擴展,當你鍵入一個文本時,它會過濾記錄。

我該如何實現它?

+0

你能告訴我你在哪裏添加'更改'偵聽器嗎? –

回答

0

重寫onChange財產在您的擴展,如:

onChange: function() { 
      // Your logic 
      console.log('Changed!'); 

      // Call parent method onChange(), if needed 
      this.callParent(); 
} 

我創建簡單的小提琴來說明它是如何工作 - onChange() method fiddle

+0

它不起作用 –

+0

我爲你創建了一個小提琴並將其添加到我的答案中,請檢查它。如果我明白你的問題是錯誤的 - 隨時分叉,並顯示你需要什麼。 –

0

添加一個「變」監聽到你的選擇器(它可以是一個組合框,日期選擇器,等...)

下面是一個例子:

var comboName = new Ext.form.field.ComboBox({ 
    fieldLabel: 'Name', 
    editable: true, 
    listeners: { 
    'change': function (this, newValue, oldValue) { 
    DoSomething(); 
    } 
    } 
}); 

每次更改值時,前面的代碼都會調用DoSomething()函數。

+0

它不起作用 –

0

如果擴展Ext.form.field.Picker類, '變' 事件應該是這樣處理的:

Ext.define('Your.extended.ClassName', { 
    extend: 'Ext.form.field.Picker', 

    ... 

    onChange: function(newVal, oldVal) { 
     .... 
     this.callParent(arguments); 
    } 

}); 
+0

它不起作用 –

0

試試這個

Ext.define('MyExtension', { 
    extend: 'Ext.form.field.Picker', 

    // config... 

    listeners: { 
     change: { 
      fn: function (picker, newValue, oldValue, eOpts) { 
       // your code here 
      } 
     } 
    } 
}); 

您也可以指一個函數在您的視圖 - 控制(Extjs5/6 )

listeners: { 
     change: { 
      fn: 'myViewControllerFunction' 
    } 

如果這不起作用,您應該向我們展示您的部分代碼。

相關問題