Chosen: .trigger ("المختار: محدث") لا يحق له تحديد الخيار الذي أعطيه

تم إنشاؤها على ١٨ أكتوبر ٢٠١٦  ·  7تعليقات  ·  مصدر: harvesthq/chosen

عندما أحاول إعادة تحديد قيمة dirrert عبر ajax
في المرة الأولى التي تقوم فيها الوظيفة بالشيء الصحيح
بعد مرتين أو أكثر عندما قمت بتغيير خيار تحديد num1
يجب تحديث تحديد num2 الآخر عن طريق تحديد شيء آخر خيار val
ولكن ليس عدة خيارات أحتاج إلى تحديدها أو عدم تحديد أي شخص على الإطلاق

سلوك متوقع

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

السلوك الفعلي

قل لنا ماذا يحدث بدلا من ذلك.

بيئة

  • الإصدار المختار : 1.6.2
  • إصدار jQuery أو النموذج الأولي :
  • المتصفح والإصدار : chrome 54.0.2840.59 m (64-bit)
  • نظام التشغيل والإصدار : WIN7 SP1 64BIT






القيام ببعض من أجل funtion {
$ ("# خيار واحد [القيمة = 1] '). attr (' محدد '، صحيح) ؛
$ ("# خيار واحد [القيمة = 3] '). attr (' محدد '، صحيح) ؛
}
$ ("# one"). val (1) .trigger ("selected: updated")؛

ثم ربما لا أحصل على أي شيء يتم اختياره بعد ذلك أحيانًا لاحقًا ؟؟؟
لا أعلم أنني أفعل ذلك ، فيمكنني تحديد الخيار الصحيح الذي أحتاجه بعد ذلك؟

Awaiting Reply

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

مرحبًا بلانشانج ،
يمكن حل مشكلتك من خلال هذا.
ماذا تفعل:
$ ("# خيار واحد [القيمة = 1] '). attr (' محدد '، صحيح) ؛
$ ("# خيار واحد [القيمة = 3] '). attr (' محدد '، صحيح) ؛
$ ("# one"). val (1) .trigger ("selected: updated")؛

ما يجب القيام به

$ ("# خيار واحد [القيمة = 1] '). attr (' محدد '، صحيح) ؛
$ ("# خيار واحد [القيمة = 3] '). attr (' محدد '، صحيح) ؛
$ ("# one"). trigger ("selected: updated")؛

لا تعطي أي قيمة أثناء تشغيل التحديث ؛

ال 7 كومينتر

آسف لغتي الإنجليزية الفقيرة: تنهد:

إذا فهمت بشكل صحيح ، يمكنك إضافة خيارات جديدة إلى التحديد باستخدام طلب ajax ، ثم تقوم بتشغيل chosen:updated لجعل Chosen يعكس التغييرات؟

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

شكرا ل REP هذا

ليس مثل ذلك .. لا يتم تحديث قائمة الخيارات
قائمة الخيارات بالطريقة نفسها
لكن القيمة ليست كذلك
في كل مرة أريد تغيير القيمة التي اخترتها: تم التحديث عبر jQuery
عندما كانت قيمة العناصر المحددة لأول مرة صحيحة
ولكن سوف تسوء عندما مرات serivel في وقت لاحق
لا يمكنني الحصول على القيمة الصحيحة للعنصر المحدد ....
image
image
عند التحميل لأول مرة ، كانت الوظيفة صحيحة ، يلزم تحديد خيار واحد فقط
image
image

ثم مرة أخرى
image

يجب أن يكون مثل هذا
Uploading image.png…

https://jsfiddle.net/4jtsdnt7/ بعض

مرحبًا بلانشانج ،
يمكن حل مشكلتك من خلال هذا.
ماذا تفعل:
$ ("# خيار واحد [القيمة = 1] '). attr (' محدد '، صحيح) ؛
$ ("# خيار واحد [القيمة = 3] '). attr (' محدد '، صحيح) ؛
$ ("# one"). val (1) .trigger ("selected: updated")؛

ما يجب القيام به

$ ("# خيار واحد [القيمة = 1] '). attr (' محدد '، صحيح) ؛
$ ("# خيار واحد [القيمة = 3] '). attr (' محدد '، صحيح) ؛
$ ("# one"). trigger ("selected: updated")؛

لا تعطي أي قيمة أثناء تشغيل التحديث ؛

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

https://jsfiddle.net/5wbzxg27/

هناك 3 أزرار:

  • حدد كل الخيارات ،
  • حدد بعض الخيارات ،
  • حدد الخيارات المتبقية.

يظهر كل خيار مرة واحدة فقط في مربع الاختيار ، حتى إذا قمت بالضغط على الزر نفسه (وقمت بتحديثه) عدة مرات . يعمل البرنامج النصي على ما يرام ، تتغير الحالة المحددة لخيارات التحديد الأصلية بشكل جيد ، لكن الخيار المختار يعرض الخيارات في المرة الأولى فقط.

أتمنى أن يساعدك هذا.

cinemazealot جرب الكود التالي:

$("#mySelect").chosen({
       placeholder_text_multiple: 'Something',
});
$('button#all').on('click', function() {
  $('#mySelect option').attr('selected', false);   // selects all
  var options = [];
  for (var i=0; i < $('#mySelect option').length; i++){
    options.push($('#mySelect option')[i].value);
  };
  $('#mySelect').val(options);
  $("#mySelect").trigger("chosen:updated");       // updates chosen
  return false;                                   // returns false not to post the surrounding form
});
$('button#first').on('click', function() {
  $('#mySelect option').attr('selected', false);  // clears all
  var options = [];
  for (var i=0; i < $('#mySelect optgroup[label="first"] option').length; i++){
    options.push($('#mySelect optgroup[label="first"] option')[i].value);
  };
  $('#mySelect').val(options);
  $("#mySelect").trigger("chosen:updated");       // updates chosen
  return false;                                   // returns false not to post the surrounding form
});
$('button#second').on('click', function() {
  $('#mySelect option').attr('selected', false);  // clears all
    var options = [];
  for (var i=0; i < $('#mySelect optgroup[label="second"] option').length; i++){
    options.push($('#mySelect optgroup[label="second"] option')[i].value);
  };
  $('#mySelect').val(options);
  $("#mySelect").trigger("chosen:updated");       // updates chosen
  return false;                                   // returns false not to post the surrounding form
});

قد تبدو ضخمة وكبيرة ، ولكن يبدو أنها تعمل

pashaUSA أنت الأفضل! :) آسف لرد الفعل المتأخر ، كان لدي مشاريع أخرى قيد التشغيل. لكن الحل الخاص بك يفعل فقط ما يفترض أن يفعله. شكرا جزيلا! :)

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

القضايا ذات الصلة

eduardokranz picture eduardokranz  ·  6تعليقات

engintekin picture engintekin  ·  8تعليقات

gandarez picture gandarez  ·  5تعليقات

scottdoc picture scottdoc  ·  7تعليقات

ali1360 picture ali1360  ·  5تعليقات