سؤال

وأستخدمه المساعد الإكمال التلقائي مسج لنموذج بحث بسيط. أواجه مشكلة في تحويل البيانات بلدي كائن JSON في صفيف للاستخدام مع ميزة الإكمال التلقائي.

وبلدي كود:

var listOfOrderedByNames = getAutocompleteData();
$('#OrderedBy').autocomplete(listOfOrderedByNames);

function getAutocompleteData() {
    var output;
    $.getJSON('AJAX/GetOrderedByNames', function(data) {
        $.each(data, function(index, optionData) {
            output += optionData + "|";
        });
    });
    return output;
}

وبياناتي JSON التي يتم إرجاعها يبدو مثل هذا:

    ["Jimmy","John", "Etc",null]

لسبب ما تبدو مثل ما أنا الحصول على العودة من تلك الوظيفة getAutocompleteData هو سلسلة فارغة وأنا لا أعرف ما هو الخطأ.

الرجاء المساعدة!

هل كانت مفيدة؟

المحلول

وانها ل$.getJSON غير المتزامن. بمجرد ارسال طلب، لا تزال وظيفة getAutocompleteData() بك المنفذة، شيئا العودة.

ويجب أن ترفق كل شيء في وظيفة رد كنت تمر لطريقة getJSON:

var output;
$.getJSON('AJAX/GetOrderedByNames', function(data) {
    var output = "";
    $.each(data, function(index, optionData) {
        output += optionData + "|";
    });
    $('#OrderedBy').autocomplete(output);
});

نصائح أخرى

وحاول تغيير خط var ouput; إلى var output = '';

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top