Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Какое событие подобрать типа change для input (https://javascript.ru/forum/jquery/18505-kakoe-sobytie-podobrat-tipa-change-dlya-input.html)

sinbad13 04.07.2011 10:03

Какое событие подобрать типа change для input
 
Описание задачи.
Имеется текстовое поле.
Плагин autocomplete ui.
В autocomplete при загрузке DOM аяксом подгружаются данные (названия городов).
Теперь при наборе названия города появляется подсказка внизу текстового поля.
И по щелчку по нему, опять идет аякс-запрос на сервер, котоырй по названию города тянет цену доставки для него.
Теперь проблема в чем.
Аякс подгрузка городов проходит нормально.
Далее на подгрузку цен поставил change поля:
$("#countprice").change(function(){
$.ajax({
...
});
});

Но когад мы пишем название города полностью, например "Челябинск", то все проходит хорошо..название города сравнивается, тянется цена..но вот если мы во вреям набора воспользуемся подсказкой autocomplete и выберем "Челя" то город вставляется нормально в поле..а вот запрос обрабатывает как раз "Челя"..соотвесвтенно выдается ошибка о том, что такого города нет..
Вопрос: Какое событие лучше подобрать или сделать возможно свое, чтобы сначала вставлялось название города в поле, а потом шел запрос на сервер?

Как вариант назанчить запрос на клик по подсказке autocomplete, но каким элементам я не назначал клики - она не работали, хотя подсказка - это список с ul, li,a.

Skipp 04.07.2011 10:17

Вы хоть документацию читайте
у этого плагина есть своё событие change ....
change – событие autocompletechange наступает после того, как выбран один из пунктов списка. Событие всегда наступает после close.

или

$("#tag").autocomplete({
	source: availableTags,
	select: function(event, ui) {
	      alert('Событие: ' + event.type +
	      ',\nзначение: ' + ui.item.value);
	}
});

walik 04.07.2011 10:19

В autocomplete есть событие onselect, которое срабатывает при выборе элемента из списка.
Типа того:
$('#countprice').autocomplete({
   //...
   onSelect: function(value, data) {
      alert(value+', '+data);
   }
   //...
});

sinbad13 04.07.2011 10:53

Спасибо!)
Каюсь, в этот раз ступил и не прочитал что написано в документации плагина. Думал что все манипуляции надо производить стандартными событиями поля.
Задача решилась с помощью события close..он выполняется после вставки значения в поле.
select к сожалению не подошел, так же отсылалось половина города, то есть оно выполняется до вставки значения.


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