2013-11-17 1 views
0

Я пытаюсь выполнить поиск по id, но автозаполнение по имени.
Поэтому я помещаю скрытый ввод, который обновляется при выборе.
Проблема заключается в том, что если пользователь нажимает Esc или какой-либо способ инициирует поиск без выбора, поиск не выполняется (не возвращает желаемое значение), поскольку скрытое значение не обновляется. Я пытаюсь заставить автозаполнение выбрать верхний результат, пока не будет выбран другой результат.Авто выберите верхний результат автозаполнения в скрытый ввод

Мой код:

$('#search_box').focus(function() { 
      $(hidden).val(""); 
     }); 
$('#search_box').autocomplete({ 
      source: "autocomplete_empl.asp", 
      minLength: 2, 
      autoFocus: true, 
      select: function (event, ui) { 
       $('#hidden').val((ui.item ? ui.item.id : 0)); 
      } 
     }); 

Спасибо!

P.S

Возвращаемый список поставляется в виде JSON.

ответ

0

Я бы установил, что autocomplete val() пуст. Если пусто не делать ничего (или вам необходимо выбрать первое значение?)

$('#search_box').focus(function() { 
      $(hidden).val(""); 
     }); 
$('#search_box').autocomplete({ 
      source: "autocomplete_empl.asp", 
      minLength: 2, 
      autoFocus: true, 
      select: function (event, ui) { 
       if($('#search_box').val() !== ""){ 
        $('#hidden').val((ui.item ? ui.item.id : 0)); 
       } 
      } 
     }); 

Если вам нужно выбрать первый вариант просто запустить поисковую событие с данными вам необходимо

select: function (event, ui) { 
       if($('#search_box').val() !== ""){ 
        $('#hidden').val((ui.item ? ui.item.id : 0)); 
       } 
       else{ 
        $('#search_box').autocomplete('search', 'DataYouNeed'); 
       } 
      } 

Вот ссылка на странице API, которая немного объясняет это. http://api.jqueryui.com/autocomplete/#method-search

+0

Это нехорошо ... мне нужно, чтобы первое значение было выбрано, если другое значение не было выбрано ... –

+0

Отредактировано ответ –

Смежные вопросы