обратная передача по клику для выпадающего списка

У меня есть тип выпадающего списка, который я создал. Ясно, что мне пришлось установить для AutoPostBack значение false, потому что в противном случае он отправлялся бы обратно по мере того, как пользователь печатал. Но я хочу вернуться, когда использование сделает свой выбор.

Я не хочу использовать кнопку отправки или что-то в этом роде. Долгая история, просто поверьте мне, это не решение для моей ситуации.

В javascript, который делает тип вперед, когда использование кликов входит, я отправляю обратно. Это отлично работает.

Однако как насчет того, когда пользователь щелкает мышью? Поэтому я использую событие onblur для обратной передачи. Однако для этого необходимо щелкнуть за пределами раскрывающегося списка.

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

Есть идеи???


person kralco626    schedule 23.07.2010    source источник
comment
Нет идей? Я все еще ищу решение...   -  person kralco626    schedule 23.07.2010
comment
Использование onblur для обратной передачи опасно, поскольку все, что заставляет ваш контроль терять фокус, вызовет обратную передачу.   -  person funkymushroom    schedule 25.07.2010
comment
да. Я согласен, потому что даже если вы нажмете ddl, а затем щелкнете по нему, будет обратная передача. Но хотя это и раздражает, это не оказывает отрицательного влияния на веб-приложение и лучше, чем использование на selectionChanged, потому что тогда тип впереди не будет работать. Но я открыт для других предложений вместе...?   -  person kralco626    schedule 26.07.2010


Ответы (1)


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

Чтобы выполнить обратный вызов, просто передайте его через метод привязки, когда вы заранее инициализируете тип. Пример кода:

        // attach type-ahead to class
        $autoComplete.typeahead({
            hint: true,
            highlight: true,
            minLength: 1
        }, {
            displayKey: 'value',
            source: substringMatcher($autoCompleteData)
        }).bind("typeahead:selected", function (obj, datum, name) {
            console.log(obj, datum, name);
        });

Метод .bind в конце будет выполняться, когда пользователь либо щелкает параметр, либо нажимает клавишу возврата на параметре. Замените запись console.log тем, что вы хотите сделать, т.е. нацельте кнопку отправки, чтобы вызвать щелчок.

person James    schedule 22.04.2015