我想从Extjs选择器扩展扩展。我想当用户在选择器中键入文本时,调用一个函数。我使用change
事件,它不起作用。
我想扩展像combobox这样的扩展名,当你输入文本时,它会过滤记录。
我该如何实施?
答案 0 :(得分:0)
在您的扩展程序中重写onChange
属性,如下所示:
onChange: function() {
// Your logic
console.log('Changed!');
// Call parent method onChange(), if needed
this.callParent();
}
我创造了一个简单的小提琴来说明它是如何运作的 - onChange() method fiddle
答案 1 :(得分:0)
为您的选择器添加“更改”侦听器(它可以是组合框,日期选择器等...)
以下是一个例子:
var comboName = new Ext.form.field.ComboBox({
fieldLabel: 'Name',
editable: true,
listeners: {
'change': function (this, newValue, oldValue) {
DoSomething();
}
}
});
以前的代码每次更改值时都会调用DoSomething()函数。
答案 2 :(得分:0)
如果你扩展Ext.form.field.Picker
课程,'更改'事件应该像这样处理:
Ext.define('Your.extended.ClassName', {
extend: 'Ext.form.field.Picker',
...
onChange: function(newVal, oldVal) {
....
this.callParent(arguments);
}
});
答案 3 :(得分:0)
试试这个
listeners: {
change: {
fn: 'myViewControllerFunction'
}
您还可以参考viewcontroller中的一个函数(Extjs5 / 6)
<?php
$slide_img_array = array();
$slide_desc_array = array();
$slide_name_array = array();
while (!$sql_pres_select->eof()) {
array_push($slide_img_array, $sql_pres_select->valueof('file_location'));
array_push($slide_desc_array, $sql_pres_select->valueof('description'));
array_push($slide_name_array, $sql_pres_select->valueof('slide_name'));
$sql_pres_select->next();
}
?>
<script>
var slide_no = 0;
var slides = <?php echo json_encode($slide_img_array); ?>;
var desc = <?php echo json_encode($slide_desc_array); ?>;
var names = <?php echo json_encode($slide_name_array); ?>;
function nextSlide() {
if (slide_no < slides.length) {
slide_no++;
document.getElementById("display").src = slides[slide_no];
document.getElementById("func_slide_desc").innerHTML = desc[slide_no];
document.getElementById("func_slide_name").innerHTML = names[slide_no];
}
}
function prevSlide() {
if (slide_no > 0) {
slide_no--;
document.getElementById("display").src = slides[slide_no];
document.getElementById("func_slide_desc").innerHTML = desc[slide_no];
document.getElementById("func_slide_name").innerHTML = names[slide_no];
}
}
function goToSlide(id) {
slide_no = id;
document.getElementById("display").src = slides[slide_no];
document.getElementById("func_slide_desc").innerHTML = desc[slide_no];
document.getElementById("func_slide_name").innerHTML = names[slide_no];
document.getElementById('slide_index').innerHTML = slide_no;
}
</script>
如果这不起作用,您应该向我们展示您的部分代码。