jQuery - এর পাঠ্য বিবরণ দিয়ে একটি নির্বাচিত নিয়ন্ত্রণের নির্বাচিত মান সেট করা


530

আমার একটি নির্বাচন করুন নিয়ন্ত্রণ এবং জাভাস্ক্রিপ্ট ভেরিয়েবলে আমার একটি পাঠ্য স্ট্রিং রয়েছে।

JQuery ব্যবহার করে আমি নির্বাচিত নিয়ন্ত্রণের নির্বাচিত উপাদানটি আমার কাছে থাকা টেক্সট বিবরণ (আইনের বিপরীতে, যা আমার কাছে নেই) দিয়ে আইটেম হিসাবে সেট করতে চাই।

আমি জানি এটির দ্বারা মান নির্ধারণ করা বেশ তুচ্ছ। যেমন

$("#my-select").val(myVal);

তবে আমি টেক্সট বর্ণনার মাধ্যমে এটি করতে কিছুটা স্ট্যাম্পড। আমি অনুমান করি পাঠ্য বিবরণ থেকে মানটি বের করার একটি উপায় অবশ্যই আছে তবে আমার মস্তিষ্ক শুক্রবার বিকেলে এটিকে কার্যকর করতে সক্ষম নয়।


1
@ ড্যানআটকিনসন নিজেও একই কাজ করতে চলেছিলেন। নির্বাচন একেবারে কিছুই এই প্রশ্নের কি আছে।
thecoshman

উত্তর:


757

JQuery v1.6 + এর জন্য বর্ণনানুসারে নির্বাচন করুন

var text1 = 'Two';
$("select option").filter(function() {
  //may want to use $.trim in here
  return $(this).text() == text1;
}).prop('selected', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select>
  <option value="0">One</option>
  <option value="1">Two</option>
</select>

jQuery সংস্করণ 1.6 এর নীচে এবং 1.4 এর চেয়ে বড় বা সমান

var text1 = 'Two';
$("select option").filter(function() {
  //may want to use $.trim in here
  return $(this).text() == text1;
}).attr('selected', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>

<select>
  <option value="0">One</option>
  <option value="1">Two</option>
</select>

মনে রাখবেন যে এই দৃষ্টিভঙ্গিটি 1.6 এর উপরে কিন্তু 1.9 এর চেয়ে কম সংস্করণে কাজ করবে, তবে এটি 1.6 থেকে অবহেলা করা হয়েছে। এটি jQuery 1.9+ এ কাজ করবে না


পূর্বের সংস্করণসমূহ

val() উভয় ক্ষেত্রে পরিচালনা করা উচিত।

$('select').val('1'); // selects "Two"
$('select').val('Two'); // also selects "Two"
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

<select>
  <option value="0">One</option>
  <option value="1">Two</option>
</select>


6
এটি অনুভব করে যে এটি কাজ করা উচিত নয় (এটি মনে হয় এটি অস্পষ্ট হতে পারে) তবে এটি আসলে আমার পক্ষে ভাল কাজ করা উচিত। ধন্যবাদ।
ড্যানসিংগারম্যান

69
নোট করুন যে jQuery 1.4 valueবৈশিষ্ট্য সুনির্দিষ্ট করা হয়েছে কিনা তা চয়ন করার জন্য এই আচরণটি এখন পরিবর্তন করেছে এবং valueবৈশিষ্ট্যটি অনুপস্থিত থাকলে কেবল পাঠ্য দ্বারা নির্বাচন করুন । সুতরাং এই উদাহরণে $('select').val('Two')1.3.x এ দ্বিতীয় বিকল্পটি নির্বাচন করবে, তবে 1.4.x এ কিছুই করবে না
ক্রিসেন্ট ফ্রেশ

18
সুতরাং, এখনই 1.4 এ করার সর্বোত্তম উপায় কী?
জেআর লৌহর্ন

4
JQuery এর আরও সাম্প্রতিক সংস্করণগুলিতে .val ('না-একটি-বিকল্প-মান' নয়) নির্বাচনটি প্রথম বিকল্পটিতে পুনরায় সেট করবে।
dland

5
এই প্রশ্নের প্রথম উত্তর হ'ল
.

142

আমি এটি পরীক্ষা করিনি, তবে এটি আপনার পক্ষে কার্যকর হতে পারে।

$("select#my-select option")
   .each(function() { this.selected = (this.text == myVal); });

90

পাঠ্য মাই টেক্সট সহ বিকল্পটি নির্বাচন করতে এটি চেষ্টা করুন ...

$("#my-Select option[text=" + myText +"]").prop("selected", true);

@ স্পোলসনের উত্তর আমার পক্ষে কাজ করেছে ... আমি এটিকে না করে চেষ্টা করেছি
জে কর্পেট

2
অনেক ক্ষেত্রে, এই পদ্ধতির দুর্ভাগ্যজনকভাবে কাজ করে না। এমনকি $("#my-Select option[text=" + myText +"]").get(0).selected = true;সময়ে সময়ে আমাকে ক্লাসিক
স্টাইলেও

2
নিশ্চিত করুন যে আপনি প্রথমে পুনরায় সূর্যাস্তের পূর্বে নির্বাচিত অ্যাট্রিবিউট সরাচ্ছেন করুন অন্যথায় তা বাংলায় কাজ না প্রদর্শিত হবে (আমার জন্য কাজ করে 1.9 মধ্যে)
Esse

3
@MarkW 1.9 এর .propপরিবর্তে ব্যবহার করুন .attr; পরিবর্তনের কারণ হ'ল 1.9-এ jQuery পুরানো হ্যাকগুলি অক্ষম করেছে যা আপনাকে .attrকিছু ডিওএম বৈশিষ্ট্য এবং সেইসাথে এইচটিএমএল বৈশিষ্ট্যগুলি পরিবর্তন করতে দেয়। (গুগল javascript dom properties vs attributesযদি আপনি এই পার্থক্যটি জানেন না))
মার্ক অ্যামেরি

JQuery 1.9+ সামঞ্জস্যের .prop('selected', true)পরিবর্তে ব্যবহারের .attr('selected', 'selected')জন্য আপডেট হওয়া উত্তর ।
ইরওয়ামান

43

আমি এটি এইভাবে করি (jQuery 1.9.1)

$("#my-select").val("Dutch").change();

দ্রষ্টব্য: পরিবর্তনটি ভুলে যাবেন না (), এর কারণে আমাকে দীর্ঘ অনুসন্ধান করতে হয়েছিল :)


2
আশা করি আমি একাধিকবার উপচে পড়তে পারি। সময় ছাড়ার এক ঘন্টা পেরিয়ে এখন আমি বাড়িতে যেতে পারি।
বব জর্দান

দুর্দান্ত উত্তর! সংক্ষিপ্ত এবং সহজ ... এটি শীর্ষে থাকা উচিত ... ভোট দেওয়া চালিয়ে যান।
মুহাম্মদ তারেক

এটি আমার ক্ষেত্রে কাজ করেছে, ধন্যবাদ! তবে এটি ওপি অনুরোধ হিসাবে প্রদর্শিত পাঠ্য দ্বারা নয়, বরং সেই মান দ্বারা, যা ওপিতে নেই?
ব্র্যান্ডন রোডস

21
$("#myselect option:contains('YourTextHere')").val();

আপনার পাঠ্যের বিবরণ সম্বলিত প্রথম বিকল্পটির মান প্রদান করবে। এটি পরীক্ষা করে কাজ করে।


ধন্যবাদ - আমি মনে করি এটি আমার ব্যবহার করা সংস্করণ হতে পারে, যেহেতু কোনও মিল নেই এমন পাঠ্য না থাকলেও আমার পক্ষে যুক্তি থাকা দরকার এবং এটি সক্ষম হবার পক্ষে এটি সবচেয়ে সহজ পদ্ধতি বলে মনে হয়।
ড্যানসিংগারম্যান

1
মনে রাখবেন, এটি টেক্সটের সাথে মেলে প্রথম বিকল্পটির জন্য কেবলমাত্র মান পাবে।
রুশ ক্যাম

এছাড়াও, আপনি ভাল () এর পরিবর্তে মোড়ানো সেটটিতে অ্যাটর্সকে ("নির্বাচিত", "নির্বাচিত") করতে পারেন এবং এটি ক্যারোলিনা
রাশ ক্যাম

1
ওপি বলেছেন " সেটিং মান" না " পেয়ে মান"
RousseauAlexandre

15

সমস্ত jQuery সংস্করণ জটিলতা এড়াতে, আমি সত্যিই এই সত্যিই সহজ জাভাস্ক্রিপ্ট ফাংশনগুলির একটি ব্যবহার করার জন্য সততার সাথে পরামর্শ দিচ্ছি ...

function setSelectByValue(eID,val)
{ //Loop through sequentially//
  var ele=document.getElementById(eID);
  for(var ii=0; ii<ele.length; ii++)
    if(ele.options[ii].value==val) { //Found!
      ele.options[ii].selected=true;
      return true;
    }
  return false;
}

function setSelectByText(eID,text)
{ //Loop through sequentially//
  var ele=document.getElementById(eID);
  for(var ii=0; ii<ele.length; ii++)
    if(ele.options[ii].text==text) { //Found!
      ele.options[ii].selected=true;
      return true;
    }
  return false;
}

এটি মান বা পাঠ্যের মাধ্যমে একটি নির্বাচিত বিকল্পের নির্বাচন সক্ষম করে (ডাকা ফাংশনের উপর নির্ভর করে)। উদাহরণস্বরূপ: setSelectByValue ('সসেজ', '2'); "সসেজস" এর আইডি সহ নির্বাচন বস্তুতে "2" মান সহ বিকল্পটি সন্ধান করবে এবং নির্বাচন করবে।
ডেভ

2
@ নিল আহ ... এটি প্রশ্নের উত্তর দেয়?
মার্ক অ্যামেরি

10

আমি জানি এটি একটি পুরানো পোস্ট, তবে আমি jQuery 1.10.3 এবং উপরের সমাধানগুলি ব্যবহার করে পাঠ্য দ্বারা এটি নির্বাচন করতে পারিনি। আমি নিম্নলিখিত কোডটি ব্যবহার করে শেষ করেছি (স্পনসনের সমাধানের প্রকরণ):

      var textToSelect = "Hello World";

      $("#myDropDown option").each(function (a, b) {
            if ($(this).html() == textToSelect ) $(this).attr("selected", "selected");
        });

আশা করি এটি কাউকে সাহায্য করবে।



7
 $("#Test").find("option:contains('two')").each(function(){
     if( $(this).text() == 'two' ) {
        $(this).attr("selected","selected");
     }
 });

যদি বিবৃতিটি "দুই" এবং "দুই তিন" এর সাথে সঠিক মিল করে তবে মিলবে না


না, এটাই আমি বোঝাতে চাইনি। আমি মনে করি আমার মন্তব্যটি কিছুটা অস্পষ্ট ছিল, তাই আমি কেবল এটি মুছলাম। যদিও আমি আপনার উত্তরটিকে উস্কে দিয়েছি, কারণ এটি আমার পরিস্থিতির জন্য কাজ করেছে।
জাগড

6

1.7+ সহ সহজ উপায় হ'ল:

$("#myDropDown option:text=" + myText +"").attr("selected", "selected"); 

1.9+

$("#myDropDown option:text=" + myText +"").prop("selected", "selected"); 

পরীক্ষিত এবং কাজ করে।


1
1.9+ এ নয়। ১.6 থেকে আপনার .propডিওএম বৈশিষ্ট্যগুলি পরিবর্তন করতে ব্যবহার করা উচিত , নয় .attr(যা এইচটিএমএল / ডিওএম বৈশিষ্ট্যের জন্য)। স্ট্যাকওভারফ্লো.com
মার্ক

আমি "নির্বাচিত" এর সত্যবাদী মানের পরিবর্তে ("নির্বাচিত", সত্য) ব্যবহার করব
mplungjan


4

কটাক্ষপাত করা jQuery selectedbox প্লাগইন

selectOptions(value[, clear]): 

প্যারামিটার হিসাবে স্ট্রিং $("#myselect2").selectOptions("Value 1");বা নিয়মিত এক্সপ্রেশন ব্যবহার করে মান অনুসারে বিকল্পগুলি নির্বাচন করুন $("#myselect2").selectOptions(/^val/i);

আপনি ইতিমধ্যে নির্বাচিত বিকল্পগুলি সাফ করতে পারেন: $("#myselect2").selectOptions("Value 2", true);


3

শুধু একটি পাশ নোট। আমার নির্বাচিত মান সেট করা হচ্ছে না। এবং আমি পুরো নেট খুঁজে পেয়েছিলাম। আসলে একটি ওয়েব পরিষেবা থেকে কল ফেরার পরে আমাকে একটি মান নির্বাচন করতে হয়েছিল, কারণ আমি এটি থেকে ডেটা পাচ্ছিলাম।

$("#SelectMonth option[value=" + DataFromWebService + "]").attr('selected', 'selected'); 
$("#SelectMonth").selectmenu('refresh', true);

সুতরাং নির্বাচককে রিফ্রেশ করাটাই ছিল আমি একমাত্র অনুপস্থিত।


এটাই সঠিক - পুরোপুরি ... আমি দ্বিতীয় লাইনের কোনও কারণ দেখছি না। যেমন কাজ করা উচিত।
সেগিভ এসইও

2

আমি দেখতে পেয়েছি যে attrআপনি ব্যবহারের মাধ্যমে একাধিক বিকল্প নির্বাচন করা শেষ হবে যখন আপনি চান না - সমাধানটি হ'ল prop:

$("#myDropDown option:text=" + myText +"").prop("selected", "selected");


1

আমার উপরের উদাহরণগুলির সাথে আমার একটি সমস্যা ছিল এবং আমার নির্বাচিত বাক্সের মানগুলি 6 টি অক্ষরের নির্দিষ্ট দৈর্ঘ্যের স্ট্রিং দ্বারা পরিপূর্ণ হয় তবে প্যারামিটারটি নির্দিষ্ট দৈর্ঘ্যের নয়।

আমার একটি আরপিএড ফাংশন রয়েছে যা একটি স্ট্রিং, নির্দিষ্ট দৈর্ঘ্য এবং নির্দিষ্ট অক্ষরের সাথে ডানদিকে প্যাড করবে। সুতরাং, প্যারামিটার প্যাডিংয়ের পরে এটি কাজ করে।

$('#wsWorkCenter').val(rpad(wsWorkCenter, 6, ' '));


function rpad(pStr, pLen, pPadStr) {
if (pPadStr == '') {pPadStr == ' '};
while (pStr.length < pLen)
    pStr = pStr + pPadStr;
return pStr; 
} 

1
 $('#theYear').on('change', function () {
 FY = $(this).find('option:selected').text();
 $('#theFolders').each(function () {
     $('option:not(:contains(' + FY + '))', this).hide();
 });
 $('#theFolders').val(0);
});

$('#theYear').on('mousedown', function () {
 $('#theFolders option').show().find('option:contains("Select")', this).attr('selected', 'selected');
});

0

এই গৃহীত উত্তরটি সঠিক বলে মনে হচ্ছে না, যখন .val ('newValue') ফাংশনের জন্য সঠিক, এর নাম অনুসারে একটি নির্বাচন পুনরুদ্ধারের চেষ্টা করা আমার পক্ষে কাজ করে না, আমার উপাদানটি পেতে আইডি এবং ক্লাসের নামটি ব্যবহার করতে হয়েছিল


0

এখানে একটি সহজ বিকল্প। কেবলমাত্র আপনার তালিকা বিকল্প সেট করুন তার পাঠ্যটি নির্বাচিত মান হিসাবে সেট করুন:

$("#ddlScheduleFrequency option").selected(text("Select One..."));

-1

বাছাই করা বাক্সের বাচ্চাদের পান; তাদের মাধ্যমে লুপ; যখন আপনি নিজের পছন্দ মতো একটি পেয়েছেন, এটি নির্বাচিত বিকল্প হিসাবে সেট করুন; লুপিং বন্ধ করতে মিথ্যা প্রত্যাবর্তন করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.