استخدام وظيفة اختيار كريتشيرتشويس سيليكت2
-
12-12-2019 - |
سؤال
أحاول استخدام وظيفة كريتسيرتششويس للسماح للمستخدمين بإدخال اختيارهم عندما القائمة الافتراضية لن تكفي.عندما أحاول استخدام هذه الوظيفة على <select>
العنصر ، أحصل على الخطأ التالي:
Error: Error: Option 'createSearchChoice' is not allowed for Select2 when attached to a <select> element.
حاولت استخدام <input type='hidden'>
بدلا من ذلك ، ولكن الآن الحصول على الخطأ التالي:
Error: uncaught exception: query function not defined for Select2 'MyInputName'
أفضل استخدام عنصر التحديد للبقاء متماشيا مع التعليمات البرمجية الحالية (تحتاج إلى القدرة على تحديد خيارات متعددة) ، ولكن تحتاج فقط إلى قدرة المستخدمين على إدخال خيارهم الخاص بالإضافة إلى الاختيار من قائمة سابقة.
المحلول
يا إلهي ، كيف يمكنني إلغاء هذه المكافأة.لقد أصبت بالذعر وبسبب الذعر تمكنت من الإجابة على ما كنا نبحث عنه:
لا يمكنك استخدام createSearchChoice
على select
.لذلك عليك استخدام ملف input
بدلا من ذلك.
<input type="hidden" id="category">
الإصلاح هو استخدام query
المعلمة:
$("#category").select2({query:function(query){
var data = {results: []};
data.results.push({text: query.term});
query.callback(data);
}});
ما يفعله هذا هو إضافة المصطلح الحالي إلى الخيارات إذا لم يكن موجودا.يمكنك ملء results
كائن مثل ذلك:
var data = {results: [{text:'math'},{text:'science'}]};
هذا حل مشكلتي لذلك آمل أن تحل مشكلتك.أعتقد أننا يجب أن نقرأ المزيد عن الوثائق.
نصائح أخرى
واجهت هذه المشكلة وكان ذلك بسبب استدعاء التحديد 2 في نفس الحقل مرتين