Как можно было бы сделать автоматическое заполнение тега ввода HTML в Ext.js?

У меня была подобная проблема, но мой был то, что у меня была смесь исходных данных XML, некоторым из которых определили пространство имен и других, которые не сделали. Для упрощения моей проблемы, я выполнил следующий отрывок JDOM после загрузки документа.

for (Element el : doc.getRootElement().getDescendants(new ElementFilter())) {
    if (el.getNamespace() != null) el.setNamespace(null);
}

После удаления всех пространств имен я смог использовать простой getChild ("elname") навигация стиля или простые запросы XPath.

я не рекомендовал бы эту технику как общее решение, но в моем случае это было определенно полезно.

8
задан JasonMArcher 13 June 2014 в 19:01
поделиться

2 ответа

Поскольку bmoueskau предоставил довольно полнофункциональную реализацию, я подумал, что может помочь более простой пример.

var store = new Ext.data.JsonStore({
    url: '/your/ajax/script/',
    root: 'data',  // the root of the array you'll send down
    idProperty: 'id',
    fields: ['id','value']
});

var combo = new Ext.form.ComboBox({
    store: store,
    displayField:'value',
    typeAhead: true,
    mode: 'remote',
    queryParam: 'query',  //contents of the field sent to server.
    hideTrigger: true,    //hide trigger so it doesn't look like a combobox.
    selectOnFocus:true,
    width: 250,
    renderTo: 'autocomplete'  //the id of the html element to render to.
                              //Not necessary if this is in an Ext formPanel.
});

Магазин будет принимать ответы от вашего сервера в таком формате:

{
    "success": true,
    "data": [
        {
            "id": 10,
            "value": "Automobile"
        },
        {
            "id": 24,
            "value": "Autocomplete"
        }
    ]
}

Конечно , вы также можете создать свой магазин с Ext.data.XMLReader, если это вам больше нравится.

Надеюсь, это поможет вам начать. Я не могу не подчеркнуть великолепие документации Ext . В нем есть несколько подходящих примеров в дополнение к примерам combobox , которые я активно использовал, когда впервые сделал несколько автозаполнений.

13
ответ дан 5 December 2019 в 08:53
поделиться

Не существует отдельной функции автозаполнения, которую можно было бы привязать к входам в общем случае - вы бы просто использовали элемент управления ComboBox с фильтрацией на стороне сервера (вы можете использовать конфигурацию hideTrigger: true, чтобы он по-прежнему выглядит как обычный ввод). Вероятно, это наиболее близкий пример того, что вам нужно:

http://extjs.com/deploy/dev/examples/form/forum-search.html

6
ответ дан 5 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: