1

У меня очень длинный список элементов для выпадающего списка. Поскольку список очень длинный, я хотел бы показывать только элементы в списке, если пользователь действительно нажимает на раскрывающийся список, чтобы развернуть его. Я нашел различные учебники по использованию AJAX с каскадированием dropdownlists, но никто не объясняет, возможно ли иметь только один dropdownlist, который заполняется AJAX, когда пользователь расширяет его.Заполнение DropDownList с помощью AJAX

Есть ли расширения, поставляемые с набором инструментов AJAX, который я пропустил? Какой был бы лучший способ добиться этого?

Спасибо, Бен

ответ

1

Что бы я сделал это:

Есть один пустой элемент в списке. Когда выпадающий список получает фокус, вы меняете один элемент, чтобы сказать «Загрузка» или что-то в этом роде. Затем вы делаете запрос ajax, который вы хотите.

После того, как он завершит работу, вы отвяжите событие фокусировки от выпадающего списка, чтобы не перезагружать последующие события фокусировки.

Похоже, что было бы не слишком сложно сделать что-то подобное.

Я посмотрю, могу ли я что-нибудь взломать на jsfiddle, если вам нужна помощь.

EDIT: Кстати, к вашему вопросу о удлинителях я ничего не знаю об этом.

EDIT 2: Вы могли бы попробовать что-то вроде этого:

$(document).ready(
    function() 
    { 
     $("#theSelect").bind("focus", function() 
          { 
           $("option:first", this).html("Loading..."); 
           setTimeout(AjaxSuccessCall, 2000); 
          }); 
    }); 

function AjaxSuccessCall(data) 
{ 
    var select = $("#theSelect"); 
    select.unbind("focus"); 
    select.children("option").remove(); 
} 
+0

Привет спинона, спасибо за Ваш ответ. Знаете ли вы о каких-либо учебниках, которые бы использовали такой подход? Я только начинаю со всей AJAX, поэтому не совсем уверен, что искать. – b3n

+0

Я добавил пример. – spinon

+0

Спасибо за пример спинона, плохо попробуй. Приветствия. – b3n

Смежные вопросы