নির্বাচিত প্লাগইন সহ একটি নির্বাচনে নির্বাচন পরিবর্তন করা হচ্ছে


105

আমি নির্বাচিত প্লাগইনটি দিয়ে একটি নির্বাচনে বর্তমানে নির্বাচিত বিকল্পটি পরিবর্তন করার চেষ্টা করছি।

ডকুমেন্টেশন কভার তালিকা আপডেট, এবং বাইরে বর্তমানে নির্বাচিত মান পরিবর্তন করার জন্য একটি ইভেন্ট একটি অপশনটি নির্বাচন করা হয়, কিন্তু কিছুই (আমি দেখতে পারেন) triggering।

কোডটি প্রদর্শন এবং নির্বাচনটি পরিবর্তনের জন্য আমার চেষ্টা করা উপায়গুলি দেখানোর জন্য আমি একটি জেএসফিডেল তৈরি করেছি:

$('button').click(function() {
    $('select').val(2);
    $('select').chosen().val(2);
    $('select').chosen().select(2);
});

আপনার প্রদত্ত জেফফিল প্রদর্শনটি আমি চালাতে পারিনি। আপনি দয়া করে এটি আপডেট করতে পারেন?
ভাগ্যবান

ঠিক আছে. আমি আপনার বিক্ষোভ চালাতে না পারার কারণে বাছাই করা লাইব্রেরিটি একটি ভুল url এর দিকে ইঙ্গিত করছিল। এখানে আপডেট করা jsfiddle
ভাগ্যবান

উত্তর:


214

দস্তাবেজের "বেছে নেওয়া পরিবর্তনশীল" বিভাগ থেকে : আপনাকে মাঠে 'নির্বাচিত: আপডেট হওয়া' ইভেন্টটি ট্রিগার করতে হবে

$(document).ready(function() {

    $('select').chosen();

    $('button').click(function() {
        $('select').val(2);
        $('select').trigger("chosen:updated");
    });

});

দ্রষ্টব্য: 1.0 এর পূর্বে সংস্করণগুলি নিম্নলিখিতটি ব্যবহার করেছে:

$('select').trigger("liszt:updated");

6
এফওয়াইআই: তারা 1.0 এ আপডেট হয়েছে যা এখন chosen:updatedপরিবর্তে ব্যবহার করেliszt:updated
হেনেসনারফেল

আমি এখানে হোঁচট খেয়েছি কারণ আমি বহু নির্বাচিত নির্বাচিত অনুসন্ধান ফলাফল তালিকার (যখনই ফোকাসটি হারিয়ে ফেললাম) থেকে সেরা বর্তমানে মেলানো বিকল্পটি বেছে নেওয়ার উপায় অনুসন্ধান করার চেষ্টা করছিলাম। আমার অনুসন্ধানগুলি সম্পর্কে এখানে একটি ছোট্ট ঝাঁকুনি । আপনার ইভেন্টের কোনও ইভেন্ট ট্রিগার করার দরকার নেই। সম্ভবত, এটি অন্য কারও জন্যও কার্যকর ... :)
টিমো

উপরের কোডটি কাজ করার পরেও এটি কেবল একবারই ঘটে I আমি যদি আবার মেনুতে ক্লিক করি তবে নির্বাচিত প্লাগইন সংযুক্ত আছে তবে ভাল () এর অভ্যন্তরে থাকা মানটি গ্রহণ করে না Why কেন
এমনটি

9
আমি জানি এটি একটি পুরানো পোস্ট - তবে আপডেট করার সহজ উপায়টি কেবল একটি স্ট্রিংয়ে: $('select').val(2).trigger("chosen:updated");
অ্যান্ড্রু নিউবি

10
@Lucas Welper: আপনি পরিবর্তন করা উচিত $('select').val(2);মধ্যে $('select').val(2).change();, কারণ jQuery সঙ্গে একটি নির্বাচিত নির্বাচিত বিকল্প পরিবর্তন ইভেন্টের পরিবর্তন আরম্ভ করে না এবং কিছু মানুষ এটা প্রয়োজন হতে পারে।
machineaddict

41

আমার উত্তর দেরি হয়ে গেছে, তবে আমি কিছু তথ্য যুক্ত করতে চাই যা উপরের সমস্ত উত্তরে মিস হয়েছে।

1) আপনি যদি সিলেক্ট সিলেক্ট সিলেক্ট করতে চান।

$('#select-id').val("22").trigger('chosen:updated');

2) আপনি যদি একাধিক নির্বাচিত নির্বাচন ব্যবহার করেন তবে আপনার একসাথে একাধিক মান সেট করার প্রয়োজন হতে পারে।

$('#documents').val(["22", "25", "27"]).trigger('chosen:updated');

নিম্নলিখিত লিঙ্কগুলি থেকে তথ্য সংগ্রহ করা হয়েছে:
1) চয়ন করা দস্তাবেজ
2) চয়ন করা গিতুব আলোচনা


"22", "25" ইত্যাদি উল্লেখ করে যে মানগুলি হ'ল অভ্যন্তরীণ এইচটিএমএল নয়, উদাহরণস্বরূপ <বিকল্প মান = "25"> সামান্য পাঠ্য </ translation>
ফাদি বাকৌরা

2

কখনও কখনও নির্বাচিত বিকল্পগুলি কারবার করার জন্য আপনাকে বর্তমান বিকল্পগুলি সরিয়ে ফেলতে হবে।

বিকল্পগুলি কীভাবে সেট করবেন তা এখানে একটি উদাহরণ:

<select id="mySelectId" class="chosen-select" multiple="multiple">
  <option value=""></option>
  <option value="Argentina">Argentina</option>
  <option value="Germany">Germany</option>
  <option value="Greece">Greece</option>
  <option value="Japan">Japan</option>
  <option value="Thailand">Thailand</option>
</select>

<script>
activateChosen($('body'));
selectChosenOptions($('#mySelectId'), ['Argentina', 'Germany']);

function activateChosen($container, param) {
    param = param || {};
    $container.find('.chosen-select:visible').chosen(param);
    $container.find('.chosen-select').trigger("chosen:updated");
}

function selectChosenOptions($select, values) {
    $select.val(null);                                  //delete current options
    $select.val(values);                                //add new options
    $select.trigger('chosen:updated');
}
</script>

জেএসফিডেল (কীভাবে সংযোজন অপশনগুলি সহ): https://jsfiddle.net/59x3m6op/1/


1
যে ক্ষেত্রে এখনও নির্বাচনের কোনও মূল্য নেই তার জন্য অ্যাকাউন্ট var selected = mySelect.val();করতে, var selected = mySelect.val() || [];পরিবর্তে আপডেট করুন।
এলিয়টস্মেলিয়ট

0

ক্ষেত্রে একাধিক নির্বাচন ধরণ এবং / অথবা আপনি সরাসরি ড্রপডাউন তালিকা আইটেম মধ্যে একের পর এক ইতিমধ্যেই নির্বাচিত বস্তুগুলি সরিয়ে ফেলার ব্যাপারে, চান, আপনি ভালো কিছু ব্যবহার করতে পারেন:

jQuery("body").on("click", ".result-selected", function() {
    var locID = jQuery(this).attr('class').split('__').pop();
    // I have a class name: class="result-selected locvalue__209"
    var arrayCurrent = jQuery('#searchlocation').val();
    var index = arrayCurrent.indexOf(locID);
    if (index > -1) {
        arrayCurrent.splice(index, 1);
    }
    jQuery('#searchlocation').val(arrayCurrent).trigger('chosen:updated');
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.