سؤال

كيف يمكنني اكتشاف ما إذا كان مربع الإدخال أم لا هو حاليا 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 إلى العناصر التي تستخدمها. يمكنك البحث عن ذلك.

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