আমি একটি ফাংশন ব্যবহার করে একটি সমাধান প্রয়োগ করেছি যা <select>
কাস্টম ডেটা-বৈশিষ্ট্যের উপর ভিত্তি করে একটি কম্বোবক্স ( ) ফিল্টার করে। এই সমাধানটি সমর্থন করে:
<option>
ফিল্টারটি নির্বাচনটি খালি ছেড়ে দেয় কখন তা দেখানোর জন্য Having
- বিদ্যমান নির্বাচিত বৈশিষ্ট্যকে সম্মান করে।
<option>
ডেটা-ফিল্টার অ্যাট্রিবিউট ব্যতীত উপাদানগুলি ছোঁয়া থাকে are
JQuery 2.1.4 এবং ফায়ারফক্স, ক্রোম, সাফারি এবং আইই 10+ এর সাথে পরীক্ষিত।
এটি উদাহরণ এইচটিএমএল:
<select id="myCombobox">
<option data-filter="1" value="AAA">Option 1</option>
<option data-filter="1" value="BBB">Option 2</option>
<option data-filter="2" value="CCC">Option 3</option>
<option data-filter="2" value="DDD">Option 4</option>
<option data-filter="3" value="EEE">Option 5</option>
<option data-filter="3" value="FFF">Option 6</option>
<option data-filter-emptyvalue disabled>No Options</option>
</select>
ফিল্টারিংয়ের জন্য jQuery কোড:
function filterCombobox(selectObject, filterValue, autoSelect) {
var fullData = selectObject.data("filterdata-values");
var emptyValue = selectObject.data("filterdata-emptyvalue");
if (!fullData) {
fullData = selectObject.find("option[data-filter]").detach();
selectObject.data("filterdata-values", fullData);
emptyValue = selectObject.find("option[data-filter-emptyvalue]").detach();
selectObject.data("filterdata-emptyvalue", emptyValue);
selectObject.addClass("filtered");
}
else {
selectObject.find("option[data-filter]").remove();
selectObject.find("option[data-filter-emptyvalue]").remove();
}
var toEnable = fullData.filter("option[data-filter][data-filter='" + filterValue + "']");
selectObject.append(toEnable);
if (toEnable.length == 0) {
selectObject.append(emptyValue);
}
if (autoSelect) {
var obj = selectObject.find("option[selected]");
selectObject.val(obj.length == 0 ? toEnable.val() : obj.val());
}
}
এটি ব্যবহার করতে, আপনি যে মানটি রাখতে চান তার সাথে আপনি কেবল ফাংশনটি কল করবেন।
filterCombobox($("#myCombobox"), 2, true);
তারপরে ফলাফলটি নির্বাচিত হবে:
<select id="myCombobox">
<option data-filter="2" value="CCC">Option 3</option>
<option data-filter="2" value="DDD">Option 4</option>
</select>
মূল উপাদানগুলি ডেটা () ফাংশন দ্বারা সঞ্চিত থাকে, সুতরাং পরবর্তী কলগুলি সঠিক উপাদান যুক্ত করবে এবং সরিয়ে দেবে।