我想擴展Extjs選擇器的擴展名。我想當用戶在選擇器中鍵入文本時,調用一個函數。我使用change
事件,它不起作用。如何在extjs文本字段選擇器中獲取更改事件
我想擴展一個像combobox一樣的擴展,當你鍵入一個文本時,它會過濾記錄。
我該如何實現它?
我想擴展Extjs選擇器的擴展名。我想當用戶在選擇器中鍵入文本時,調用一個函數。我使用change
事件,它不起作用。如何在extjs文本字段選擇器中獲取更改事件
我想擴展一個像combobox一樣的擴展,當你鍵入一個文本時,它會過濾記錄。
我該如何實現它?
重寫onChange
財產在您的擴展,如:
onChange: function() {
// Your logic
console.log('Changed!');
// Call parent method onChange(), if needed
this.callParent();
}
我創建簡單的小提琴來說明它是如何工作 - onChange() method fiddle
它不起作用 –
我爲你創建了一個小提琴並將其添加到我的答案中,請檢查它。如果我明白你的問題是錯誤的 - 隨時分叉,並顯示你需要什麼。 –
添加一個「變」監聽到你的選擇器(它可以是一個組合框,日期選擇器,等...)
下面是一個例子:
var comboName = new Ext.form.field.ComboBox({
fieldLabel: 'Name',
editable: true,
listeners: {
'change': function (this, newValue, oldValue) {
DoSomething();
}
}
});
每次更改值時,前面的代碼都會調用DoSomething()函數。
它不起作用 –
如果擴展Ext.form.field.Picker
類, '變' 事件應該是這樣處理的:
Ext.define('Your.extended.ClassName', {
extend: 'Ext.form.field.Picker',
...
onChange: function(newVal, oldVal) {
....
this.callParent(arguments);
}
});
它不起作用 –
試試這個
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'
}
如果這不起作用,您應該向我們展示您的部分代碼。
你能告訴我你在哪裏添加'更改'偵聽器嗎? –