عندما أحاول إعادة تحديد قيمة dirrert عبر ajax
في المرة الأولى التي تقوم فيها الوظيفة بالشيء الصحيح
بعد مرتين أو أكثر عندما قمت بتغيير خيار تحديد num1
يجب تحديث تحديد num2 الآخر عن طريق تحديد شيء آخر خيار val
ولكن ليس عدة خيارات أحتاج إلى تحديدها أو عدم تحديد أي شخص على الإطلاق
أخبرنا بما يجب أن يحدث.
عندما أقوم بتغيير واحد حدد العنصر
حدد 2 بحاجة عن طريق الخيار الآخر المحدد الأساسي هو الخيار الذي أحصل عليه عبر أجاكس
قل لنا ماذا يحدث بدلا من ذلك.
القيام ببعض من أجل funtion {
$ ("# خيار واحد [القيمة = 1] '). attr (' محدد '، صحيح) ؛
}
$ ("# one"). val (1) .trigger ("selected: updated")؛
واحد فال 1
ومن بعد
القيام ببعض من أجل funtion {
$ ("# خيار واحد [القيمة = 1] '). attr (' محدد '، صحيح) ؛
$ ("# خيار واحد [القيمة = 3] '). attr (' محدد '، صحيح) ؛
}
$ ("# one"). val (1) .trigger ("selected: updated")؛
ثم ربما لا أحصل على أي شيء يتم اختياره بعد ذلك أحيانًا لاحقًا ؟؟؟
لا أعلم أنني أفعل ذلك ، فيمكنني تحديد الخيار الصحيح الذي أحتاجه بعد ذلك؟
آسف لغتي الإنجليزية الفقيرة: تنهد:
إذا فهمت بشكل صحيح ، يمكنك إضافة خيارات جديدة إلى التحديد باستخدام طلب ajax ، ثم تقوم بتشغيل chosen:updated
لجعل Chosen يعكس التغييرات؟
يرجى إعداد كمان لتوضيح المشكلة ، ومن ثم يمكننا تحديد ما إذا كان هذا خطأ أو مجرد مشكلة في التنفيذ.
شكرا ل REP هذا
ليس مثل ذلك .. لا يتم تحديث قائمة الخيارات
قائمة الخيارات بالطريقة نفسها
لكن القيمة ليست كذلك
في كل مرة أريد تغيير القيمة التي اخترتها: تم التحديث عبر jQuery
عندما كانت قيمة العناصر المحددة لأول مرة صحيحة
ولكن سوف تسوء عندما مرات serivel في وقت لاحق
لا يمكنني الحصول على القيمة الصحيحة للعنصر المحدد ....
عند التحميل لأول مرة ، كانت الوظيفة صحيحة ، يلزم تحديد خيار واحد فقط
ثم مرة أخرى
يجب أن يكون مثل هذا
مرحبًا بلانشانج ،
يمكن حل مشكلتك من خلال هذا.
ماذا تفعل:
$ ("# خيار واحد [القيمة = 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 أنت الأفضل! :) آسف لرد الفعل المتأخر ، كان لدي مشاريع أخرى قيد التشغيل. لكن الحل الخاص بك يفعل فقط ما يفترض أن يفعله. شكرا جزيلا! :)
التعليق الأكثر فائدة
مرحبًا بلانشانج ،
يمكن حل مشكلتك من خلال هذا.
ماذا تفعل:
$ ("# خيار واحد [القيمة = 1] '). attr (' محدد '، صحيح) ؛
$ ("# خيار واحد [القيمة = 3] '). attr (' محدد '، صحيح) ؛
$ ("# one"). val (1) .trigger ("selected: updated")؛
ما يجب القيام به
$ ("# خيار واحد [القيمة = 1] '). attr (' محدد '، صحيح) ؛
$ ("# خيار واحد [القيمة = 3] '). attr (' محدد '، صحيح) ؛
$ ("# one"). trigger ("selected: updated")؛
لا تعطي أي قيمة أثناء تشغيل التحديث ؛