在动态创建的字段上触发clearIconTap回调

时间:2014-03-03 11:31:57

标签: sencha-touch-2

我正在使用Sencha Touch创建一个简单的应用程序,当用户需要添加带有组件的新容器时,我正在使用textfield s,textareafield等动态创建容器。现在的问题是当点击textareafield上的清除图标时它会清除文本,但我想知道哪个textareafield已被清除。请问有人帮我吗?

这就是我创建容器的方式。

    var childObj2 = {};
    childObj2.xtype = 'container';

    var type = 'vbox';
    var layout = {}
    layout.type = type;
    childObj1.layout = layout;

    var txtarea= {};
    txtarea.xtype = 'textareafield';
    txtarea.id = "txt51";
    txtarea.flex = 3;
    txtarea.maxRows = 7;
    txtarea.placeHolder = 'Type here';
    txtarea.value = value['notes'];
    txtarea.inputCls = 'txtareaStyle'
    txtarea.clearicontap = "clearText";

How to add clearicontap listener to this?

1 个答案:

答案 0 :(得分:1)

当您创建textfield时,只需为clearicontap事件添加一个监听器,并为每个字段执行回调。

例如:

var container = Ext.create('Ext.Container', {});

for (var i=1; i<=3; i++) {
    var field = Ext.create('Ext.field.Text', {
        id: 'textfieldnumber' + i,
        listeners: {
            clearicontap: function() {
                alert("Tapped clear icon on text field number: " + i + "!");
            }
        }
    });
    container.add(field);
}

[编辑]

我回答你在编辑后提出的问题:

我正在使用通过Ext.create()创建Sencha组件的标准方法,我建议您切换到相同的方式。您发布的代码并不清楚这些Javascript对象实际上是如何转换为Ext组件的。无论如何,它们很可能是组件配置,所以我想你可以试试:

txtarea.listeners = {
    clearicontap: function() {
        alert("Tapped clear icon on text field");
    }
}