Автовыбор при автозаполнении формы
Приветствую ув. форумчане.
Помогите, пожалуйста, решить такую проблему. В общем у меня стоит в одной из форм автозаполнение, стандартный 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,) но не помогает. |
ironkiss, здравствуйте, попробуйте так:
$( "#block" ).blur(function(){
if ($(this).val() == "" ) $(this).val($(this).autocomplete( "option", "source" )[0])
});
|
Manyasha,
нужно всегда вырезать крайние пробелы перед проверкой. |
Цитата:
|
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]
}
|
рони,
к сожалению не помогло, не сработало. Возможно это из-за того, что чуток не хватает знаний. В общем как я понимаю response выполняется до того как формируется меню и zip = ui.content.map(function(el) формирует карту результатов поиска. Почему content? Если данные в item? возвращает return el.value — что это значит? что в теории должно возвращать? Далее close срабатывает в случае скрытия меню, в value передаётся this.value что там должно быть? И почему value, если данные в ui.item |
ironkiss,
нужен живой пример. |
ironkiss,
success: function( data ) - что в data, формат данных? |
рони,
вот пример: http://browse.kanaspo.com/new/ в data там json (пример: http://browse.kanaspo.com/new/source/sugg.php?term=omsk) |
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:
|
| Часовой пояс GMT +3, время: 23:02. |