الكشف عن الإكمال التلقائي jQuery UI
سؤال
كيف يمكنني اكتشاف ما إذا كان مربع الإدخال أم لا هو حاليا jQuery UI الإكمال التلقائي؟ لا يبدو أن هناك طريقة أصلية لهذا ، لكنني آمل أن يكون هناك شيء بسيط مثل هذا:
if ($("#q").autocomplete)
{
//Do something
}
هذا المشروط ، ومع ذلك ، يبدو أنه يعود دائما صحيح.
المحلول
if ($("#q").hasClass("ac_input")) {
// do something
}
تحديث
اسم الفصل في عنصر واجهة المستخدم التلقائية jQuery UI هو الآن "ui-autocplete-input" بحيث يكون هذا الرمز:
if ($("#q").hasClass("ui-autocomplete-input")) {
// do something
}
نصائح أخرى
يمكنك أيضًا العثور على سلوك الإكمال التلقائي المرفق بعنصر إدخال عن طريق السطر التالي من التعليمات البرمجية:
if ($('Selector').data('autocomplete')) {
}
يمكنك استخدام
if( $.isFunction( $.fn.autocomplete ) ){ }
. (استشهد: http://james.padolsey.com/jquery/........)
إذا تم تضمين المكون الإضافي لـ jQuery UI للصفحة التلقائية للصفحة وتريد فقط التحقق لمعرفة ما إذا كان هناك عنصر معين (إدخال) قد تم إعداده باستخدام وظيفة الإكمال التلقائي ، يمكنك استخدام طريقة واجهة برمجة التطبيقات الرسمية كما هو مبين أدناه:
if ($("#q").autocomplete("instance")) {
console.log("autocomplete already setup for #q");
} else {
console.log("NO autocomplete for #q");
}
يمكن العثور على مزيد من التفاصيل في http://api.jqueryui.com/autocomplete/#method-instance
هذا صحيح لأنه بمجرد تضمين الإكمال التلقائي JS ، كل كائن $ () لديه الآن طريقة الإكمال التلقائي () محددة (في حال كنت ترغب في تنشيط الإكمال التلقائي لتلك العناصر). إذا كنت () تقول فقط أن هذه الوظيفة ليست فارغة.
للأسف ، ليس لدي نظام حيث يمكنني التحقق من ذلك (ترك المنزل المحمول اليوم) ، لكنني أعتقد أن الإكمال التلقائي يضيف اسم فئة CSS إلى العناصر التي تستخدمها. يمكنك البحث عن ذلك.