2010-07-06 4 views
1

У меня довольно неприятная проблема с текстовым полем автозаполнения. Я хочу инициировать асинхронный PostBack всякий раз, когда пользователь выбирает элемент из поля автозаполнения и сохраняет значение элемента, а не вводимый текст. Это работает отлично, когда нажат ввод, а не щелчок мышью.JQuery Auto-Complete With TextChanged/OnBlur PostBack

Пример моего вопроса:

Кто-то идет на страницу, и типы 1000 в текстовое поле. Автозаполнение отображает 10002, 1000B и 10000. Пользователь нажимает на 1000B и инициирует асинхронный PostBack. Вместо 1000B значение TextBox.Text по-прежнему равно 1000.

Мое предположение заключается в том, что текстовое поле инициирует PostBack до того, как значение фактически получает его. Мне просто интересно, есть ли у кого-нибудь возможные решения для того, о чем я говорю.

ответ

1

Я установил его таким образом:

Согласно другому вопросу на сайте я добавил autoPostBack параметр в список опций.

В нижней части функции SelectCurrent() я добавил эти строки.

if (options.autoPostBackSelection == true) { 
     __doPostBack($input.id, ""); 
    } 

Тогда моя функция размытия выглядит следующим образом:

.blur(function() { 
      hasFocus = 0; 
      if (!config.mouseDownOnSelect) { 
       hideResults(); 
      } 
      if (options.autoPostBackSelection == true) { 
       selectCurrent(); 
      } 

Я на самом деле боролся с этим на некоторое время, мои навыки событий Javascript/DOM не очень хорошо. Надеюсь, это помогает кому-то.