2017-10-27 7 views
0

私は以下のようなコンボを持っています。コンボを無効にできません最初の値を選択してください

Ext.create('Ext.form.ComboBox', { 
      fieldLabel: 'Label', 
      allowBlank: true, 
      maxLength: 50, 
      minChars: 10000, 
      name: 'txt', 
      id: 'txt', 
      store: states, 
      displayField: 'name', 
      selectOnFocus: false, 
      forceSelection: false, 
      typeAhead: false, 
      autoSelect: false, 
      queryMode: 'local', 
      triggerAction: 'all', 
      hideTrigger: true, 
      listeners: { 
       beforequery: function (record) { 
        record.query = new RegExp(record.query, 'i'); 
        record.forceAll = false; 
       }, 
       specialkey: function (f, e) { 
        if (e.getKey() == e.ENTER) { 
         doProcess(); 
        } 
       } 
      }, 
      renderTo: Ext.getBody() 
     }); 

私の目的は、履歴を記憶するテキストボックスを構築することです。私はこのソリューションを探して見つけました:テキストフィールドのようなコンボを使用する必要があります。 これまでのところ問題ありません。 しかし、私が何かを書いて、前に検索したリストからレコードを選択すると、次回のコンボは自動的にそれを選択します。 私は説明してもわかりません。

あなたはここでそれをテストすることができます。https://fiddle.sencha.com/#view/editor&fiddle/28tl

よろしく。

+1

という意味は、ピッカーから最後に選択したアイテムの選択を解除しますか? –

+0

欲しいものは何ですか?私はあなたの情報から理解できません。 – Tejas

+0

私は何か他のものを書いたときにコンボアイテムの選択を解除したいと思います。 –

答えて

0

こんにちは私は以下のように私の問題を解決しました。

https://fiddle.sencha.com/#view/editor&fiddle/28tl

この例は、私の質問よりも、私はより明確に伝えます。

Ext.application({ 
    name: 'Fiddle', 

    launch: function() { 
     // The data store containing the list of states 
     var states = Ext.create('Ext.data.Store', { 
      fields: ['abbr', 'name'], 
      data: [{ 
       "abbr": "AL", 
       "name": "Alabama" 
      }, { 
       "abbr": "AK", 
       "name": "Alaska" 
      }, { 
       "abbr": "AZ", 
       "name": "Arizona" 
      }] 
     }); 

     // Create the combo box, attached to the states data store 
     Ext.create('Ext.form.ComboBox', { 
      fieldLabel: 'Label', 
      allowBlank: true, 
      maxLength: 50, 
      minChars: 10000, 
      name: 'txt', 
      id: 'txt', 
      store: states, 
      displayField: 'name', 
      selectOnFocus: false, 
      forceSelection: false, 
      typeAhead: false, 
      autoSelect: false, 
      queryMode: 'local', 
      triggerAction: 'all', 
      hideTrigger: true, 
      enableKeyEvents: true 

      , 
      listConfig: { 
       listeners: { 
        itemclick: function (list, record) { 
         _iseFareIleSecildi = true; 
        }, 
        highlightitem: function (view, node, eOpts) { 
         _iseKlavyeIleSecildi = true; 
        } 
       } 
      }, 
      listeners: { 
       beforequery: function (record) { 
        record.query = new RegExp(record.query, 'i'); 
        record.forceAll = false; 
        Ext.defer(function() { 
         secimiSifirla(); 
        }, 30); 
       }, 
       specialkey: function (f, e) { 
        if (e.getKey() == e.ENTER) { 
         console.log('action'); 
        } 
       }, 
       keyup: function (combo, e) { 
        if (e.getKey() == e.ENTER) { 
         console.log('action'); 
        } 
       }, 
       beforeselect: function (combo, record, index, eOpts) { 
        if (_iseFareIleSecildi) { 
         secimiSifirla(); 
         return true; 
        } else { 
         if (_iseKlavyeIleSecildi) { 
          secimiSifirla(); 
          return true; 
         } else { 
          return false; 
         } 
        } 
       } 
      }, 
      renderTo: Ext.getBody() 
     }); 
    } 

}); 

var _iseFareIleSecildi = false; 
var _iseKlavyeIleSecildi = false; 

function secimiSifirla() { 
    _iseFareIleSecildi = false; 
    _iseKlavyeIleSecildi = false; 
} 

よろしくお願いいたします。

0

あなたはとても似falsetrackOver boundlist設定を設定することができます。

xtype: 'combo', 
... 
listConfig: { 
    trackOver: false 
} 

フィドル:https://fiddle.sencha.com/#view/editor&fiddle/2945

+0

こんにちは、私は説明できなかったと思います。 「Alabama」を選択してから、キーボードから「ALABAM-> ALABA-> ALAB」を選択し、Enterコンボを押すと自動的に「ALABAMA」が選択されます しかし、この動作は望ましくありません。 コンボは、項目をフィルタリングするだけで、選択することはできません。 これをどうすれば実現できますか? あなたのフィドルサンプルを試しても、前回の選択まで自動完了しないようにすることはできません。 私の英語は申し訳ありません。 よろしくお願いいたします。 –

0

は "tagfield" を試してみてください。 Check here

+0

ありがとうございますが、私の必要と同じ振る舞いをしていません。 これは検索ボックスであり、スタイルにタグを付けることは望ましくありません。そしてまた、私が期待しているように動作しません。よろしくです。 よろしくお願いします。 –

関連する問題