jQuery Autocomplete - Как начать поиск, когда пользователь щелкает текстовое поле ввода с переменным текстом - PullRequest
1 голос
/ 01 февраля 2011

У меня есть ряд текстовых полей ввода, которые используют автозаполнение jQuery, чтобы помочь пользователю выбрать соответствующий элемент. Элемент должен совпадать, в противном случае поле должно быть пустым. Эта часть отлично работает.

Теперь для этого требуется, чтобы пользователь щелкнул по полю, а затем начал набирать соответствующий текст, прежде чем делать выбор. Часто, но не всегда, первые несколько совпадающих символов известны скрипту (но они меняются от поля к полю). Если символы известны, я хотел бы помочь пользователю, позволив ему щелкнуть по полю ввода, а затем выполнить поиск и начать поиск, используя эти несколько символов. Символы могут быть неправильными, если так, пользователь может просто удалить их и ввести свой собственный ввод, чтобы выбрать совпадение.

Я думаю, что мне нужно просто набрать их для пользователя, когда они нажимают на ввод. Затем это волшебным образом запускает автопоиск, и они берут его оттуда. Но какой лучший способ сделать это?

У меня есть:

$("#input_thing").autocomplete('query.php', {
    width: 300,
    multiple: false,
    matchContains: false,
    formatItem: formatItem,
    formatResult: formatResult,
    mustMatch: true,
    cacheLength: 1,
    extraParams: {
        "category": function () {
            return $("#category option:selected").val()
        },
        "order": "1"
    }
}); // edit note:  added missing `});`

$("#input_thing").focus(function () {
    if ($("#search_starting_text").text().length > 0 && $("#input_thing").text() == 0) {
        //This meets my conditions for helping the user but not sure what to do here!!!
    }
}); // edit note:  added missing `);`

Я не собираюсь набирать текст, если это неправильный способ сделать это. Кроме того, я все равно не мог заставить его работать. Есть предложения?

1 Ответ

1 голос
/ 01 февраля 2011

Предполагая, что это автозаполнение из jQueryUI 1.8 , а не плагин, Вам нужно вызвать метод поиска:

Из документов:

.autocomplete ("поиск", [значение]) Запускает событие поиска, которое, когда данные доступны, затем будет отображаться предложения; может быть использован кнопка, подобная selectbox, чтобы открыть предложения при нажатии. Если нет значения аргумент указан, текущий значение ввода используется. Можно назвать с пустой строкой и minLength: 0 для отображения всех элементов.

так ...

if ($("#search_starting_text").text().length > 0 && $("#input_thing").text() == 0) {

    $("#input_thing").autocomplete( "search",$("#search_starting_text").text());
        //This meets my conditions for helping the user but not sure what to do here!!!
}
...