jQuery Autocomplete - Как начать поиск, когда пользователь щелкает текстовое поле ввода с переменным текстом

У меня есть ряд текстовых полей ввода, которые используют автозаполнение 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 ответ

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

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

.autocomplete ("search", [value]) Запускает событие поиска, которое, когда данные доступны, отображает предложения; может использоваться кнопкой, подобной 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!!!
}
Другие вопросы по тегам