Chosen: تعيين القيمة المحددة مع جافا سكريبت

تم إنشاؤها على ٢١ يوليو ٢٠١١  ·  25تعليقات  ·  مصدر: harvesthq/chosen

لا يعمل تعيين القيمة المحددة باستخدام جافا سكريبت. أعلم أن اختيار () يضيف فئة single_examplechzn_o_0 إلى <li> والتي لا تشترك في أي شيء مع قيمة الخيار وأن #single_example لم يعد موجودًا بعد اختياره (). هل هناك طريقة يمكن أن يعمل هذا؟

هذا يعمل:
""


$ ("# single_example"). val (2)؛

"" "

هذا لا يعمل:
""
"" "

$("#single_example").val(2);

التعليق الأكثر فائدة

شكرًا @ stof ، لقد فعلت ذلك الحيلة.

للإشارة فقط ، تغيير القيمة ديناميكيًا باستخدام jQuery:

$("#single_example").val(2).trigger('chosen:updated');

ال 25 كومينتر

جرب فرعي (https://github.com/tompaton/chosen) فقد يصلح هذا الأمر لك.

لسوء الحظ لا يعمل بالنسبة لي.

تحتاج إلى تشغيل حدث التغيير يدويًا (لا توجد طريقة للتغلب على هذا بقدر ما أعرف ، وهو أمر مزعج ...):

$("#single_example").val(2).trigger("change");

شكرا لك ، هذا يعمل بشكل مثالي!

فعلت المثال الذي أظهرته لك مع الخطأ ، ولكن عندما أفعل $ ("# single_example"). val (2) .trigger ("change")؛
، ليس لدي أي تغيير في القائمة (القيمة المختارة).
أنا أستخدم الإصدار الأخير من البرنامج المساعد.
تحية

ستحتاج إلى استخدام https://github.com/tompaton/chosen ، لم يتم دمجه في فرع الحصاد.

نعم إنه يعمل مثل السحر بعد استخدام فرع tompaton.

$ ("# single_example1"). val (2)؛
$ ("# single_example2"). val (3)
...
$ ("# single_example3"). val (20)؛
$ ('. selected'). trigger ('change')؛

مرحبًا يا رفاق ، لقد قمت بتنزيل شوكة tompaton (https://github.com/tompaton/chosen) قمت بما يلي:
$ ("# single_example"). val (2) .trigger ("change")؛
هذا يعمل مثل السحر
Thxs للحصول على المشورة :-)

أحاول كتابة دالة واضحة للكل ولا يبدو أن هذا يعمل ، حتى باستخدام فرع tompaton:
$ (". state_list"). val (""). trigger ("change")؛

لدي خيار فارغ:
""

Is there a way to totally remove all selections? Also how about selecting all?

عذرًا ، لم يتطرق التصحيح الخاص بي إلى مربعات التحديد المتعددة ، والتي ستتطلب
رمز أكثر عدلاً ...

يوم الجمعة 12 آب (أغسطس) 2011 الساعة 1:50 صباحًا MB34
[email protected]
كتب:

أحاول كتابة دالة واضحة للكل ولا يبدو أن هذا يعمل ، حتى باستخدام فرع tompaton:
$ (". state_list"). val (""). trigger ("change")؛

لدي خيار فارغ:

هل هناك طريقة لإزالة كل التحديدات؟ أيضا ماذا عن اختيار الكل؟

قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub:
https://github.com/harvesthq/chosen/issues/31#issuecomment -1782941

فهل هناك طريقة للقيام بذلك دون تصحيح الإضافة؟

حسنًا ، لذا فإن مسح جميع الخيارات من التحديد المتعدد ممكن بدون تصحيح ، إذا كنت على استعداد لتأمين نفسك في كيفية عمل العناصر الداخلية المختارة:

// replace {select_id} below with the id of your <select> tag
$('#{select_id}_chzn .chzn-choices .search-choice a').click();

سيؤدي هذا إلى محاكاة النقر فوق إزالة "x" على كل عنصر تم اختياره في التحديد المتعدد.

تحديد جميع الخيارات ممكن أيضًا (عن طريق محاكاة النقر فوق جميع الخيارات المتاحة في القائمة المنسدلة):

$('#{select_id}_chzn .chzn-drop li').click();

يجب بالفعل إضافة هذه الطرق كطرق للمكوِّن الإضافي المختار.

حسنًا لتوضيح كل هذا:

أشار pfiller إلى أن كل هذا ممكن في الحصاد / الفرع المختار باستخدام:

$("#single_example").val(2).trigger("liszt:updated");

سيئتي لعدم قراءة الكود / الوثائق بدقة كافية. سيعمل ذلك بشكل صحيح مع مربعات تحديد متعددة أيضًا.

يمكن مسح جميع الخيارات من تحديد متعدد باستخدام:

$('#{select_id}').val([]).trigger('liszt:updated');

أعتقد أن تعليقي السابق لا يزال هو الطريقة الوحيدة لتحديد جميع الخيارات بالرغم من ذلك.

_ لاحظ أن شوكة بلدي الآن هي نفسها حصاد / تم اختياره فيما يتعلق بهذا ، لذا فقط استخدمه وتجاهل العناصر .trigger('change') .

بالنسبة لأولئك الذين قد يستخدمون مهايئ النموذج الأولي ، يمكنك القيام بنفس الشيء على النحو التالي:

  $(select_box_id).select('option[selected]').each(function(el){el.selected = false});
  Event.fire($(select_box_id), 'liszt:updated')

كندة عالية الكعب لكنها تعمل. إذا كان هناك طريقة أفضل للقيام بهذا lemmie تعرف

الحل الذي أستخدمه هو تغيير الخيار المحدد في تحديد المصدر الأصلي ثم إعادة إنشاء Chosen.

select.val(value);
select.chosen('destroy');
select.chosen({});

roelvanduijnhoven الحل الوارد في تعليق tompaton (أو المقدم من RyanS لإصدار النموذج الأولي) أفضل لأنه يقوم بتحديث العنصر المختار الحالي بدلاً من تدميره وبناء عنصر جديد

لسبب ما ، لا يبدو أن حل ompaton يعمل في حالتي. لم أبذل الكثير من الجهد في ذلك ، لذلك ربما فعلت شيئًا خاطئًا.

roelvanduijnhoven إذا كنت تستخدم الإصدار 1.0 ، فالحدث الآن chosen:updated

شكرًا @ stof ، لقد فعلت ذلك الحيلة.

للإشارة فقط ، تغيير القيمة ديناميكيًا باستخدام jQuery:

$("#single_example").val(2).trigger('chosen:updated');

و كمرجع موثق: http://harvesthq.github.io/chosen/#change -update-events

آسف roelvanduijnhoven ، تعليقي كان مخصصًا لمشكلة أخرى ، لقد حذفته الآن. (قام gmail بتجميع رسائل البريد الإلكتروني ، ونشرت تعليقًا عن طريق الرد)

شكرا جزيلا! هذا الموضوع أنقذ يومي!
أخيرًا لدي تحديد متعدد بالقيم الافتراضية :)

مرحبًا ، أنا jquery جديد وتم اختياره للتو. أنا في حيرة من أمري حول كيفية تعيين / الحصول على قيم متعددة في الاختيار.

ما أحاول فعله هو إنشاء خيار ديناميكيًا عند تحميل الصفحة ، ثم أحتاج إلى تحديد الإعدادات الافتراضية

شكرا
جوري

gpdhillion:
استخدم هذا
$ ('. selected-select'). val ([1،2،3]). trigger ('selected: updated')؛

$ ("#id"). val (id_value)؛
$ ("# id"). تم اختياره ("إتلاف") ؛
$ ("# id"). تم اختياره ({}) ؛

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات