在extjs4中如何在控制器中捕获textarea的keypress事件

时间:2013-04-09 07:08:35

标签: event-handling extjs4 textarea enter

我在extjs工作。我有一个textarea输入单词和一个搜索按钮。我有视图 -

Ext.define('Balaee.view.kp.Word.Word', {
    extend : 'Ext.form.Panel',
    id : 'WordId',
    alias : 'widget.Word',
    title : 'Dictionary',
    height : 500,
    items : [{

        xtype : 'textfield',
        fieldLabel : 'Enter the word',
        name : 'wordtext',
        //anchor:'100%',
        allowBlank : false,
        emptyText : 'Enter the word',
        enableKeyEvents : true,
        id : 'wordtext',
        action : 'EnterAction'
        }, 
        {
        xtype : 'button',
        formBind : true,
        fieldLabel : 'Search',
        action : 'SearchAction',
        text : 'Search'
        }
    ]
    });

在控制器中我的功能为 -

    SearchWord:function(button)
    {

        var j = Ext.getCmp('wordtext').getValue();
        console.log("word is:"+j);

        var answers = '{"data":[';
        answers = answers + '{"word":"'+j+'"}'
        answers =answers+']}';
        console.log(answers);

        var storeObject=this.getStore('kp.WordStore');
        storeObject.load({

            params:{
                data: answers 
            },
            callback: function(records,operation,success){
                //console.log(records)
            },
            scope:this
        });
        var temp=Ext.getCmp('WordId');
        temp.remove('WordInfoId');
        var details=Ext.create('Balaee.view.kp.Word.WordInfo');
        //details.region='center';
        temp.add(details);
    }
});

当用户在textarea中输入单词并单击提交按钮时,上面的功能正常工作。但我想执行上面的“SearchWord”控制器功能,也可以点击进入按钮。即如果用户将在textarea中输入单词并按下回车键,则需要执行控制器的相同功能。那么如何在控制器中捕获textarea的回车按键事件?

1 个答案:

答案 0 :(得分:0)

只需听取specialKey事件并在密钥为ENTER时调用您的函数。

所以在你的控制器的init函数中,做这样的事情:

this.control({
    '#wordtext':{
        specialkey: function(field, e){
            if (e.getKey() == e.ENTER) {
                 //Do whatever you want here (such as call your SearchWord function)
            }
        }  
    }
});