JQuery দ্বারা নির্বাচিত কোনও বিকল্প ইতিমধ্যে বিদ্যমান কিনা তা আমি কীভাবে পরীক্ষা করতে পারি


169

JQuery দ্বারা নির্বাচিত কোনও বিকল্প ইতিমধ্যে বিদ্যমান কিনা তা আমি কীভাবে পরীক্ষা করতে পারি?

আমি নির্বাচনগুলিতে গতিশীল বিকল্পগুলি যুক্ত করতে চাই এবং তাই অনুরূপ প্রতিরোধের জন্য বিকল্পটি ইতিমধ্যে বিদ্যমান কিনা তা আমার চেক করা উচিত।

উত্তর:


333

এটি যদি ইতিমধ্যে বিদ্যমান থাকে তবে এটি সত্য করে মূল্যায়ন করে:

$("#yourSelect option[value='yourValue']").length > 0;

5
জ্যাকুরি 1.6 + এ আপগ্রেড করা হচ্ছে, আপনার মূল্য উদ্ধৃতিতে আবদ্ধ করুন
বব

1
হাঁ। উদ্ধৃতিগুলি অত্যন্ত গুরুত্বপূর্ণ।
বোবেতকো

2
আপনার মূল্যকে উদ্ধৃতিবিহীনভাবে জড়িত না করে jquery 1.7.1 এ আমার জন্য কাজ করে
ম্যাথিয়াস এফ

উপরের সমাধানে কীভাবে কেস বা টুলওয়ারকেস উপেক্ষা করা যেতে পারে? এর জন্য কি ড্রপ ডাউন তালিকার জন্য একটি ea .চেক করা দরকার?
বেন সেওয়ার্ডস

1
আমরা যদি কেস সেনসিটিভ ম্যাচিং বাস্তবায়ন করতে চাই তবে আমাদের কী করতে হবে? সহজ ea .Each ফাংশনটি ব্যবহার করবেন?
চৌদ্দ ওয়াকাস

21

JQuery ব্যবহারের আরেকটি উপায়:

var exists = false; 
$('#yourSelect  option').each(function(){
  if (this.value == yourValue) {
    exists = true;
  }
});

6
-1 আপনি মূলত লুপটি নিজেই করছেন অন্য সমস্ত উত্তরের মত জিকুয়েরিটিকে এটি করার পরিবর্তে। যদিও এটি কাজ করবে, এটি চাকাটি পুনরায় উদ্ভাবন করছে।
পিটার

14
নিশ্চিত না যে এটি -1 যোগ্য। এটি স্পষ্টভাবে প্রক্রিয়াটি দেখায়, যা প্রাথমিকদের জন্য ভাল হতে পারে। অবশ্যই সেরা উত্তর নয়, তবে এটি একটি বৈধ উত্তর।
রবার্থট্টিংগার

1
এবং কিছু আমার মত ম্যানুয়াল পদ্ধতির মত। এটি অন্যটির মতো 0 বা 1 উত্পাদনের পরিবর্তে এবং সেখানে রূপান্তরিত হওয়ার পরিবর্তে সেখানে বুলিয়ান যুক্ত করার পদক্ষেপের সাথে একত্রিত হয়। আমি বলি উভয় পন্থা ঠিক আছে কারণ আপনাকে যেভাবেই 2 পদক্ষেপ করতে হবে। প্রক্রিয়াটি আমার কাছে এটি আরও দৃশ্যমান বলে মনে হয় এবং সাদা অংশের দৈর্ঘ্য বিচার না করে যেমন ত্রুটির ঝুঁকির ঝুঁকির ঝুঁকি থাকে, উদাহরণস্বরূপ, যেমনটি .lengthপারে might
vapcguy

3
এগুলির জন্য প্লাস ওয়ান, এছাড়াও আপনার নিজের ভ্যালুতে থাকা চরিত্রগুলির জন্য আপনাকেও চিন্তা করতে হবে না
ফ্যাবিও সি।

1
"এবং আপনার মান" উদাহরণস্বরূপ, এটি যদি ব্যবহারকারী ইনপুট হয় তবে আপনি যদি না জানেন তবে এটি এবং অ্যালন্ট29 এর উত্তরটি বিদ্যমান মানের জন্য যাচাই করার সর্বোত্তম উপায়। "JQuery এটি করতে দিন" এর জন্য একটি একক স্ট্রিং তৈরি করার জন্য আপনাকে ইনপুট স্যানিটাইজেশন করতে হবে এবং দশকের পর দশক ধরে এসকিউএলকে ভুগতে থাকা কোড অনুশীলনগুলি শেষ করতে হবে। সুতরাং একটি -1 সম্পূর্ণ অনিয়ন্ত্রিত। এমনকি প্রশ্নটিও জানিয়েছে যে তারা "গতিশীল" মানগুলি সন্নিবেশ করতে চায়। আপনার স্ট্রিংকে গতিশীলভাবে একসাথে প্যাচ করবেন না। আপনি এমন ব্যবহারকারীদের থেকে 1 নির্বাচন করবেন না যেখানে পাসওয়ার্ড = "'+ স্ট্রিং +'", আপনি কি করেন?
আআ

20
if ( $("#your_select_id option[value=<enter_value_here>]").length == 0 ){
  alert("option doesn't exist!");
}

2
আপনি একটি বন্ধনী বন্ধনী "বিকল্প [মান = <enter_value_here>]"
কেবি

17
var exists = $("#yourSelect option")
               .filter(function (i, o) { return o.value === yourValue; })
               .length > 0;

এটি আপনার জন্য মূল্যটি স্বয়ংক্রিয়ভাবে পালিয়ে যাওয়ার সুবিধা রয়েছে যা পাঠ্যটিতে এলোমেলো উদ্ধৃতিগুলি মোকাবেলা করতে আরও সহজ করে তোলে।


2

কাজ করে না, আপনাকে এটি করতে হবে:

if ( $("#your_select_id option[value='enter_value_here']").length == 0 ){
  alert("option doesn't exist!");
}

1

এটি আমাকে সহায়তা করে:

  var key = 'Hallo';

   if ( $("#chosen_b option[value='"+key+"']").length == 0 ){
   alert("option not exist!");

    $('#chosen_b').append("<option value='"+key+"'>"+key+"</option>");
    $('#chosen_b').val(key);
   $('#chosen_b').trigger("chosen:updated");
                         }
  });

0

আমারও একি দশা. ডমটির মাধ্যমে প্রতিবার অনুসন্ধান চালিয়ে যাওয়ার পরিবর্তে সিলেক্ট কন্ট্রোলের লুপটি আমি ভেরিয়েবলের মধ্যে জেকুরি সিলেক্ট উপাদানটি সংরক্ষণ করেছিলাম এবং এটি করেছি:

function isValueInSelect($select, data_value){
    return $($select).children('option').map(function(index, opt){
        return opt.value;
    }).get().includes(data_value);
}

0

যদিও অন্যান্য বেশিরভাগ উত্তর আমার পক্ষে কাজ করেছিল আমি ব্যবহার করেছি .ফাইন্ড ():

if ($("#yourSelect").find('option[value="value"]').length === 0){
    ...
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.