|
|
|
| Суть скрипта такая - человек начинает вводить с клавиатуры символы - ему предлагают варианты из базы.
Насколько я понял, за это отвечает вот эта часть
$(".citySelector").keyup(function(){
/* Обработчик событий при вводе названия города */
var part;
th.sendData({container:$(this)});
var cityLike = th.checkCityLike($(this).val());
if(cityLike=='0'){
th.hideDl($(this).parent(".cityContainer").children(".cityList"));
}
if(th.checkCity($(this).val())=='1'){
// City founded
part = $(this).removeClass("errorBlock")
.parent(".cityContainer")
.removeClass("errorBlock")
.parent(".cityPart")
.prev("input[name=for]")
.val();
$("."+part).show();
} else {
// City not founded
part = $(this).addClass("errorBlock")
.parent(".cityContainer")
.addClass("errorBlock")
.parent(".cityPart")
.prev("input[name=for]")
.val();
$("."+part).hide();
};
var sel = $(this).parent(".cityContainer").parent(".cityPart");
var ident = sel.prev("input[name=for]").val();
var checked = $("input[name="+ident+"]:checked").val();
th.checkRadios(ident,checked);
});
|
Собственно вопрос такой - где тут и как нужно что вставить, чтобы сделать паузу перед началом поиска в пару секунд. | |
|
|
|
|
|
|
|
для: Richard Ferlow
(02.07.2009 в 12:38)
| | Обычный скрипт работает так, что запросы к базе идут после каждого нажатия - в итоге юзер получит то, что соответствует последней введённой строке.
Если уж "задерживать, то тогда надо после каждого нажатия "дисаблить" инпут, дожидаться ответа от базы, показывать варианты и только потом "раздисабливать" инпут снова - до следующего нажатия.
Обычный юзер вводит СРАЗУ несколько символов подряд, НЕ ГЛЯДЯ на монитор.
Юзер, введя, например, три символа, очень удивится (и расстроится), когда увидит, что он дважды впустую стучал по баттонам.
Никаких "задержек" делать не надо В ПРИНЦИПЕ.
И никто - из грамотных программёров - этих задержек и не делает. | |
|
|
|
|
|
|
|
для: PAT
(02.07.2009 в 12:46)
| | Я сделал не "задержку", а просто минимальную длину для поиска от 2х символов ввёл - кажется это решило проблему. | |
|
|
|
|
|
|
|
для: PAT
(02.07.2009 в 12:46)
| | А так вообще имел ввиду такую задержку - после того как ввел последний сивмол и ждет - результат через две секунды допустим появляется. Тогда запрос к базе не будет идти после кажого нажатия | |
|
|
|