3

こんにちは私は私のenterイベントがトリガーされない下のコードを持っています、どんな助けもいただければ幸いです。

    items: [{
            xtype: 'textfield',
            id: 'idhere',
            name: 'namehere',
            fieldLabel: 'lablehere:',
            width: 500,
            handler: {
                  key:13,
                  fn : function () {
                  if (e.getKey() == e.ENTER) {
                           alert("You pressed an enter button in text field.");
    }
                  }

            }
        },{
            xtype: 'button',
            text: 'texttodisplay',
            handler: function() {
                                  //my function.
            }

        }]

私は実際にこれを使用してこれを解決しました:

listeners:  {
                specialkey: function (f,e) {    
                     if (e.getKey() == e.ENTER) {
                        loadData();
                    }
                }
            }
4

2 に答える 2

7

SenchaExt.ux.form.SearchFieldがAPIドキュメントに含まれなかった理由はわかりませんが、コンポーネントは、使用したフレームワークのすべてのバージョンに含まれています。submitこれは、イベントを起動するように設定されてcancelおり、フィールドに接続された適切な検索ボタンとキャンセルボタンが含まれています。

次のフレームワークファイルにあります。[extjs-root]\examples\ux\form\SearchField.js

独自の検索フィールドを作成するのではなく、そのコンポーネントを使用することをお勧めします。私は通常、自分のニーズに合うようにデフォルトの検索機能をオーバーライドしますが、必要のないシナリオもいくつかあります。

コンポーネントJSの上部にrequiresステートメントを追加すると、他の(UX以外の)コンポーネントと同じように作成できます。

例えば:

ステートメントが必要です:

Ext.define('MyApp.view.SomeComponent', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.mycomponent',
    requires: [
        'Ext.ux.form.SearchField'
    ],
    ...

パネルの下部ツールバーに検索フィールドを作成します。

bbar: {
    items: [{
        text: 'A Button'
    }, {
        text: 'Another Button'
    }, '-', {
        xtype: 'searchfield', // <- can use this xtype with requires stmt
        itemId: 'search',
        width: 250,
        emptyText: 'Enter first and last name to search...'
    }]
},
...

requireステートメントで問題が発生した場合は、次のように作成することもできます。

var search = Ext.create('Ext.ux.form.SearchField', {
    itemId: 'search',
    width: 250,
    emptyText: 'Enter first and last name to search...'
});
于 2013-02-01T19:12:02.800 に答える
2

そのようなリスナーを追加する方法を提供するだけです。specialkeyそのような場合に使えるイベントがあります

fieldinstance.on('specialkey', function(f, e){
    if (e.getKey() == e.ENTER) {
        // your action
    }
});

とにかく、@Geronimoが言及したUXコンポーネントを使用することをお勧めします

于 2013-02-01T19:59:46.607 に答える