Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Как в ExtJS4 установить autocomplete для combox? (https://javascript.ru/forum/extjs/23715-kak-v-extjs4-ustanovit-autocomplete-dlya-combox.html)

Bkmz_1_ 03.12.2011 03:04

Как в ExtJS4 установить autocomplete для combox?
 
В 3-й версии autocomplete в ComboBox был задан по умолчанию, а как его задать в 4-й версии?

Pavel M. 04.12.2011 13:40

можно так
просто добавить typeAhead:true
начните вводить слово Alabama

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>demo</title>
  
  <script type='text/javascript' src='http://docs.sencha.com/ext-js/4-0/extjs/ext-all.js'></script>
  <link rel="stylesheet" type="text/css" href="http://docs.sencha.com/ext-js/4-0/extjs/resources/css/ext-all.css">

<script>
Ext.onReady(function() {

	var states = Ext.create('Ext.data.Store', {
		fields: ['id', 'name'],
		data : [
			{"id": 1, "name":"Alabama"},
			{"id": 2, "name":"Alaska"},
			{"id": 3, "name":"Arizona"}
		]
	});

	Ext.create('Ext.form.ComboBox', {
		fieldLabel: 'Choose State',
		store: states,
		queryMode: 'local',
		typeAhead:true,
		displayField: 'name',
		valueField: 'id',
		listeners: {
			select: function (combo, record) {
				alert(record[0].get('id'))
			}
		},
		renderTo: Ext.getBody()
	});

});

</script>
  
</body>
</html>

Bkmz_1_ 05.12.2011 00:39

Помогло. Но все равно надо по тригеру клацнуть чтобы сработало. И не фильтрует выпадающий список

Я не использую Ext.onReady(function() {}), данные для ComboBox у меня хранятся в файле json на сервере.

А сам он у меня выглядит так

{
   xtype: 'combobox',
   itemId: 'combo-region',
   width: 177,
   typeAhead: true,
   fieldLabel: '',
   emptyText: 'Выберете область',
   displayField: 'region',
   store: 'Region',
   valueField: 'cid'
}

Bkmz_1_ 07.12.2011 05:51

Автодобор работает если установить typeAhead: true.
По умолачанию автодобор начинается после введения 4-го символа (по умолчанию 4 если queryMode = 'remote' или 0 если queryMode = 'local'). Поменять это можно в параметре minChars: . Я себе поставил minChars: 1,. Но не могу найти каким свойством можно включить фильтрацию. Т.е. если я начинаю набирать слово на букву "С", чтобы в выпадающем списке содержались слова только на эту букву. Может кто-то сталкивался? Подскажите.


Часовой пояс GMT +3, время: 04:29.