extjs 4、XTypeを防ぐ方法:既に選択されたアイテムがクリックされたときに「コンボ」が崩壊しますか?

StackOverflow https://stackoverflow.com/questions/5802795

質問

私は持っている ComboBox. 。拡張リストからアイテムをクリックすると、 ComboBox このアイテムを選択して崩壊します。すでに選択したアイテムをクリックすると、崩壊します。

「停止」する方法はありますか ComboBox ユーザーが既に選択されたアイテムを選択したときに崩壊しますか?

PS:短くて私は欲しいです ComboBox のように振る舞う TimeField から http://dev.sencha.com/deploy/ext-4.0.0/examples/themes/index.html

アップデート

少なくともIE7とIE8では機能しないソリューションは必要ありません。

役に立ちましたか?

解決

その動作が必要な場合:

Ext.form.field.ComboBox.override({
    onItemClick: Ext.emptyFn
});

他のヒント

var cb = new Ext.form.ComboBox({    
    // here is your local store
    mode: 'local',
    store: new Ext.data.SimpleStore({
        fields: ['id', 'label'],
        data: [
            ['1', 'One'],
            ['2', 'Two']
        ]
    }),    
    listeners: {
        'beforeselect': function (combo, record, index) {
            // prevent collapsing if the same value is selected
            if (record.data.label == combo.getRawValue()) return false;
        }
    }
});

あなたが扱っている3.3の場合、これはうまくいくようです:

Ext.form.ComboBox.override({
  onSelect : Ext.form.ComboBox.prototype.onSelect.createInterceptor(function(record) {
    return this.getValue() !== record.data[this.valueField || this.displayField];
  })
});

ChromeおよびIE8でテストしました。それはを防ぎます onSelect 現在の値が設定しようとしている値と正確に一致する場合、関数が呼び出されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top