Автовыбор при автозаполнении формы
Приветствую ув. форумчане.
Помогите, пожалуйста, решить такую проблему. В общем у меня стоит в одной из форм автозаполнение, стандартный 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, время: 15:27. |