سؤال

أنا أستخدم JQuery AutoComplete و MVC لتوزيع قائمة منسدلة مع مجموعة من أسماء الأعمدة.

عندما يقوم المستخدم بتغيير قيمة SropDownbox في النموذج الخاص بي ، أقوم بتقديم طلب إلى وحدة التحكم الخاصة بي لإرجاع قائمة جديدة من الأعمدة (كصفيف ، ملفوفة في نتيجة JSON) التي ستعمل على ملء صناديق الإكمال التلقائي.

مشكلتي هي أن الإكمال التلقائي لا يميز بين الكلمات وبدلاً من ذلك يصر على القيام به شخصية C ، H ، A ، R ، A ، C ، T ، E ، R. انه مزعج جدا. هنا هو الرمز:

function PopulateColumnsList(list) { 
    $(".columnDropdown").setOptions({ data: list });
}

$(document).ready(function() {
    $(".columnDropdown").autocomplete("", {
        width: 320,
        max: 14,
        highlight: false,
        minChars: 0,
        scroll: true,
        scrollHeight: 300
    });

    $("#Data").change(function() {
        $.ajax({
            url: "/Home/ColumnNamesForDataSelect",
           type: "GET",
           data: { DataSelectID: parseInt($('#Data').val()) },
            success: PopulateColumnsList
       });
  });

});

الحصول على إرجاع هذا الرد:

"مذكرة" ، "توازن"

سيظهر الإكمال الذاتي التلقائي لكل من هذه الأحرف الفردية بدلاً من اثنين: مذكرة ، توازن. اعتقدت أن هذا كان صحيحًا لأن رمز المثال يعرض طريقة مماثلة لإرجاع النتيجة.

أيه أفكار؟

شكرا مقدما.

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

المحلول

من الممكن لك إظهار مثال على ما تريد؟ أنا لا أتابع مائة في المئة.

إن الإكمال التلقائي الخاص بي هو مجرد أن يبدأ المستخدم في الكتابة في مربع نص وينظر إلى الحروف التي يتم كتابتها وإرجاع الكلمات المحتملة بهذه النتيجة.

الطريقة التي أفعلها هي:

// JavaScript file
$("#id").autocomplete("AutoFill", { delay: 1 });


// view
public ContentResult AutoFill(string q)
{
    var result = // go to database and grab all words that Start with whatever is in q.

    string sendBack = null;
    for (int i = 0; i < result.Count; i++)
    {
        sendBack += result[i] + Environment.NewLine;
    }
    return Content(sendBack);
}

لست متأكدًا مما إذا كان ذلك يساعدك على الإطلاق.

نصائح أخرى

أدرك أن هذا قد يكون حديثًا مجنونًا ، كما أنه ليس كثيرًا من الإجابة ، ولكن نظرًا لأنه يبدو أنه يتكرر على العناصر في كل مجموعة من الاستجابة ، هل حاولت لف ردك في مجموعة أخرى مثل ، [["Memo","Balance"]]?

حسنًا ، أنت مرتبط بحدث OnChange () ، والذي سيكون خطابًا بحرف. واجهت شيئًا مشابهًا ، وأردت القيمة بأكملها. لقد تعاملت مع هذا عن طريق تجاوز وظيفة Parse () وتحديد محلل XML/تنسيق ، ثم زقت الإفراط في وظيفة النتيجة () لتحليل البيانات [] التي قمت بتعيينها في وظيفة Parse ().

كيف يمكنك استخدام Post مع jquery exment؟

لذلك ، لدي دائمًا صف [] مع البيانات والاسم من التحديد (يمكنك القيام بـ JSON أيضًا).

وستحتاج أيضًا إلى تجاوز وظيفة FormatItem () للتعامل مع صفك الجديد [].

هناك العديد من الإكمال التلقائي jQuery هناك. سيساعد ذلك إذا كنت ستذكر أي شخص تستخدمه. على سبيل المثال ، لا يبدو http://docs.jquery.com/plugins/autocomplete/setoptions هل setoptions التي تستخدمها؟

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