Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2018, 12:14
Новичок на форуме
Отправить личное сообщение для ironkiss Посмотреть профиль Найти все сообщения от ironkiss
 
Регистрация: 18.06.2018
Сообщений: 6

Автовыбор при автозаполнении формы
Приветствую ув. форумчане.
Помогите, пожалуйста, решить такую проблему.

В общем у меня стоит в одной из форм автозаполнение, стандартный jqueryui

$( "#block" ).autocomplete({
  source: function( request, response ) {
	$.ajax({
	  url: "source/sugg.php",
	  dataType: "jsonp",
	  data: {
		max: "7",
		term: request.term
	  },
	  success: function( data ) {
		response( data );
	  }
	});
  },
  minLength: 3,
  select: function( event, ui ) {
	//действие при выборе...
	
	return false;
  }
})


Мне нужно чтобы если пользователь ни чего не выбрал из списка, а просто нажал tab (для переключения на следующее поле) или мышкой переключился на следующее поле. В общем когда поле поиска не в фокусе и ни чего не было выбрано, автоматом имитировался выбор первого найденного результата.

В интернете нашёл, что это есть стандартно (autoFocus: true,) но не помогает.
Ответить с цитированием
  #2 (permalink)  
Старый 18.06.2018, 12:35
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

ironkiss, здравствуйте, попробуйте так:
$( "#block" ).blur(function(){
	if ($(this).val() == "" ) $(this).val($(this).autocomplete( "option", "source" )[0])
});
Ответить с цитированием
  #3 (permalink)  
Старый 18.06.2018, 13:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Manyasha,
нужно всегда вырезать крайние пробелы перед проверкой.
Ответить с цитированием
  #4 (permalink)  
Старый 18.06.2018, 13:22
Новичок на форуме
Отправить личное сообщение для ironkiss Посмотреть профиль Найти все сообщения от ironkiss
 
Регистрация: 18.06.2018
Сообщений: 6

Сообщение от Manyasha Посмотреть сообщение
ironkiss, здравствуйте, попробуйте так:
$( "#block" ).blur(function(){
	if ($(this).val() == "" ) $(this).val($(this).autocomplete( "option", "source" )[0])
});
Спасибо за ответ, но к сожалению, не помогло
Ответить с цитированием
  #5 (permalink)  
Старый 18.06.2018, 15:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

ironkiss,
строка ноль
var zip = [];
это в параметры
,
     response: function( event, ui ) {
     zip = ui.content.map(function(el) {
     return el.value
     })},
      close: function( event, ui ) {
          var value = this.value;
          if(zip.length && zip.indexOf(value) == -1) this.value = zip[0]
      }
Ответить с цитированием
  #6 (permalink)  
Старый 19.06.2018, 12:30
Новичок на форуме
Отправить личное сообщение для ironkiss Посмотреть профиль Найти все сообщения от ironkiss
 
Регистрация: 18.06.2018
Сообщений: 6

рони,
к сожалению не помогло, не сработало. Возможно это из-за того, что чуток не хватает знаний.
В общем как я понимаю response выполняется до того как формируется меню и zip = ui.content.map(function(el) формирует карту результатов поиска. Почему content? Если данные в item?
возвращает return el.value — что это значит? что в теории должно возвращать?

Далее close срабатывает в случае скрытия меню, в value передаётся this.value что там должно быть?

И почему value, если данные в ui.item
Ответить с цитированием
  #7 (permalink)  
Старый 19.06.2018, 13:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

ironkiss,
нужен живой пример.
Ответить с цитированием
  #8 (permalink)  
Старый 19.06.2018, 13:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

ironkiss,
success: function( data ) - что в data, формат данных?
Ответить с цитированием
  #9 (permalink)  
Старый 19.06.2018, 13:26
Новичок на форуме
Отправить личное сообщение для ironkiss Посмотреть профиль Найти все сообщения от ironkiss
 
Регистрация: 18.06.2018
Сообщений: 6

рони,
вот пример: http://browse.kanaspo.com/new/
в data там json (пример: http://browse.kanaspo.com/new/source/sugg.php?term=omsk)
Ответить с цитированием
  #10 (permalink)  
Старый 19.06.2018, 14:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

ironkiss,
var zip = [];
$( "#ab" ).autocomplete({
  source: function( request, response ) {
    $.ajax({
      url: "source/sugg.php",
      dataType: "jsonp",
      data: {
        max: "7",
        term: request.term
      },
      autoFocus: true,
      success: function( data ) {
        response( data );
      }
    });
  },
     response: function( event, ui ) {
     zip = ui.content.map(function(el) {
     return el.city + " (" + el.iata + ")"
     })},
      close: function( event, ui ) {
          var value = this.value;
          if(zip.length && zip.indexOf(value) == -1) this.value = zip[0]
      },

  minLength: 3,
  select:
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет данных формы при загрузке pava467 jQuery 18 21.08.2017 17:09
Отступы при удалении элемента формы bona Общие вопросы Javascript 7 07.11.2013 14:27
Генерация формы на стороне клиента при загрузки страницы Corey Общие вопросы Javascript 2 17.09.2013 17:13
Как установить курсор на грид при открытии формы vva1972 ExtJS 1 07.11.2011 11:12
Скрыть iframe - транспорт при отправке формы. Kotakota AJAX и COMET 2 30.08.2011 10:43