#jquery #jquery-ui #autocomplete
#jquery #jquery-ui #автозаполнение
Вопрос:
Я использую виджет автозаполнения пользовательского интерфейса jQuery. Мне нужно использовать выделенный текст для дальнейшей обработки, сразу после изменения или выбора.
Но когда пользователь нажимает на предложенное значение, вводимое значение передается.
$( "#autocomplete" ).autocomplete({
source: function( req, resp ) {
$.post( "/echo/json/", {
json: '["Test1", "Test2", "Test3", "Test4", "Test5"]',
delay: 1
}, function(data) {
resp( data );
}, "JSON" );
},
select: function (event, ui) { alert($(this).val())}
});
Пример на этой скрипке: (попробуйте ввести «tes» и выбрать предложение с помощью мыши)
мне нужно использовать входное значение. в событиях изменения используется входное значение, оно должно работать в обоих случаях, когда выбран элемент автозаполнения, но также и когда вводится только значение, поэтому предупреждение приведено только для примера.
Есть какой-нибудь способ обойти это?
РЕДАКТИРОВАТЬ: в итоге я использовал: $(this).val(ui.item.value).val();
это решение всегда получает предполагаемое значение после события изменения.
Ответ №1:
Измените это:
select: function (event, ui) { alert($(this).val())}
К этому:
select: function (event, ui) {alert(ui.item.value);}
Новая скрипка: http://jsfiddle.net/M3Yur/4 /
Комментарии:
1. Спасибо, Джон / Джен, предупреждение является примером, мне нужно использовать входное значение. в событиях изменения используется входное значение, оно должно работать в обоих случаях, когда выбран элемент автозаполнения, но также и когда вводится просто значение
2. У вас есть оба значения. Может быть, если бы мы знали, когда срабатывает событие изменения??
3. Предложение действительно указало мне направление, которое работает для меня: $ (this).val(ui.item.value).val(); работает для меня
Ответ №2:
ui
Аргумент содержит информацию, которую вы ищете:
select: function (event, ui) { alert(ui.item.value); }