Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   проблема с autocomplete (https://javascript.ru/forum/jquery/17219-problema-s-autocomplete.html)

brainraider 11.05.2011 12:46

проблема с autocomplete
 
Добрый день!
Сразу скажу, что порылся по форуму и не нашел подобной проблемы, так что не пинайте.

Проблема следующая:
при вводе в input любого текста у меня создается тьма блоков, это обусловлено тем, что autocomplete запускается на действие OnKeyUp (пробовал $(document).ready() но тогда вообще ничего не работает),
сразу в блоки ничего не засовывается, а засовывается через какой-то непонятный промежуток времени и то не всегда.
Если даже засовывается - выпадающий список не появляется, а просто заполняется инпут ...
Сервер точно возвращает ответ, так что об этом не может быть и речи php-скрипт работал как при использовании .ajax() так и тут.

вот форма:
<form class="form_flats thF" style="display:block;">
	<input type="hidden" class="category" value="flats">
	<label for="town">Город / код квартиры<input name="town" class="town" type="text" /></label>
	<label for="tipe">Тип квартиры	
		<select class="search_select" name="type" class="type">
				<option></option>
		</select>
	</label>
	<label for="code">Код квартиры<input name="code" class="code" type="text" /></label>
	<input type="submit" name="search_ok" value="" class="button" />
</form>


а вот скрипт:
//аякс-выборка по полю town
	$('.thF .town').keyup(function()	{
		var data = new Array();
		$target = $('.thF .town');
		data['category'] = $('.thF .category').val();
		data['town'] = $target.val();
		$target.autocomplete('/system/modules/search/script.php',{
			autoFill: false,
			minChars: 1,
			delay: 20,
			matchSubset: false,
			extraParams: { category: data['category'], town: data['town'] },
			width: 350,
			zIndex: 99,
			selectFirst: true,
			onItemSelect: 'none'
		});
	});


Если кто поймет в чем проблема - прошу ответить!
Заранее благодарен!

0931454574 11.05.2011 17:50

Лучше напишите что данное произведение должно делать. Русскими словами.

brainraider 11.05.2011 20:29

Прошу меня извинить, писал по запарке с работы.

В общем "данной произведение" должно добавлять подсказки к строке поиска (как у Googlе).

Оно должно отсылать на сервер два параметра ($_GET['town'] && $_GET['category']), Скрипт формирует запрос в зависимости от введенных данных и возвращает строку, разделенную стандартным разделителем "|", используемым автокомплитом и заполняет некий блок, который должен выводиться под строкой поиска (в блок записываются результаты запроса), далее при выборе одного из пунктов списка, находящегося в этом блоке, содержимое должно записываться в строку поиска.

Вроде бы не так уж сложно, но не могу понять что за глюки ...

0931454574 11.05.2011 21:06

Если используешь " jquery.autocomplete.js"
то попробуй после .focus(function()
добавить
active = -1;
if (timeout) clearTimeout(timeout);
timeout = setTimeout(function(){onChange();}, options.delay);

А в body на onLoad повесить document.getElementById("ТВОЯ ФОРМА ДЛЯ ВВОДА").focus();
.


Обязательно ответь.
Я так понял что все отправляется и получается как надо , но вот вставляется не в попад, так что если решение не подойдет или не то, обязательно напиши, разберемся!

brainraider 12.05.2011 00:08

Спасибо, сейчас попробую.
пока - вот, что бы не парить мозг: http://www.yalta-kvartirant.com/index_dev.php

0931454574 12.05.2011 09:50

Слайдер в голове работает как то вызывающе))


Часовой пояс GMT +3, время: 13:21.