2

我在 extjs 工作。我有一个文本区域来输入单词和一个搜索按钮。我的视图为-

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 的回车键按下事件?

4

1 回答 1

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)
            }
        }  
    }
});
于 2013-04-11T14:36:26.610 回答