JQuery - मान के आधार पर ड्रॉपडाउन आइटम का चयन कैसे करें


85

मैं प्रविष्टियों के मूल्य के आधार पर एक ड्रॉपडाउन (चयन) को बदलना चाहता हूं।

मेरे पास है

<select id="mySelect">
  <option value="ps">Please Select</option>
  <option value="ab">Fred</option>
  <option value="fg">George</option>
  <option value="ac">Dave</option>
</select>

और मुझे पता है कि मैं ड्रॉपडाउन को बदलना चाहता हूं ताकि "एफजी" के मूल्य के साथ विकल्प चुना जाए। मैं इसे JQuery के साथ कैसे कर सकता हूं?


मैंने सोचा था कि यह इतना आसान था, लेकिन काम करने के लिए नहीं लग रहा था। मुझे लगता है कि यह समय डिबगिंग का है।
मार्क डब्ल्यू


1
आपका शीर्षक थोड़ा भ्रामक है। आप ड्रॉपडाउन का चयन नहीं कर रहे हैं, आप ड्रॉपडाउन में एक विकल्प का चयन कर रहे हैं ... यही कारण है कि 7 उत्तर हैं जो मुझे बिल्कुल मदद नहीं करते ...
user1566694

@ user1566694 यदि आप तकनीकी प्राप्त करना चाहते हैं तो इसे वास्तव में ड्रॉपडाउन नहीं कहा जाता है, यह "चयन" है
मार्क डब्ल्यू

जवाबों:


151

आपको उपयोग करना चाहिए

$('#dropdownid').val('selectedvalue');

यहाँ एक उदाहरण है:

$('#dropdownid').val('selectedvalue');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id='dropdownid'>
    <option value=''>- Please choose -</option>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='selectedvalue'>There we go!</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
</select>


21
ऊपर से सहमत। आपके कोड के अनुसार, यह होगा$('#mySelect option[value="fg"]').attr('selected', true)
मार्टाविस पी।

मेरी गलती। मैंने देखा है कि यह कुछ मामलों में काम नहीं करता है, लेकिन यह स्पष्ट रूप से फिडेल में करता है।
मार्टाविस पी।

2
मैं बस इससे सावधान रहूंगा। यह <select> टैग पर 'परिवर्तन' घटना को ट्रिगर नहीं करता है। यदि आप उस घटना का उपयोग नहीं कर रहे हैं, तो यह ठीक है।
चाड फिशर

2
@ChadFisher यदि आप परिवर्तन ईवेंट का उपयोग कर रहे हैं, तो इसे ट्रिगर करें$('#dropdownid').val('selectedvalue').trigger('change');
Liam

वास्तव में ट्रिगर परिवर्तन से मदद मिलती है जब आपने मॉडल अपडेट जैसे कुछ कार्यों को करने के लिए कुछ अनुवर्ती कोड लिखे हैं, यहां तक ​​कि ASP.net व्यू मॉडल अपडेट भी डीडी के परिवर्तन कार्यक्रम पर होते हैं। +1
दिव्य तिवारी

23
$('#yourdropddownid').val('fg');

वैकल्पिक रूप से,

$('select>option:eq(3)').attr('selected', true);

जहाँ 3आप चाहते हैं विकल्प का सूचकांक है।

लाइव डेमो



8

आप इस jQuery कोड का उपयोग कर सकते हैं, जो मुझे लगता है कि यह उपयोग करने के लिए उपयुक्त है:

$('#your_id [value=3]').attr('selected', 'true');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select id="your_id" name="name" class="form-control input-md">
  <option value="1">Option #1</option>
  <option value="2">Option #2</option>
  <option value="3">Option #3</option>
  <option value="4">Option #4</option>
  <option value="5">Option #5</option>
  <option value="6">Option #6</option>
  <option value="7">Option #7</option>
</select>


7
 $('#mySelect').val('ab').change();

 // or

 $('#mySelect').val('ab').trigger("change");

1
या $ ('# mySelect'); वैल ('ab')। ट्रिगर ("परिवर्तन") ;; यदि आप select2 प्लगइन का उपयोग कर रहे हैं तो।
वैभव जैन

1
.change () ने मुझे मेरी ASP.net MVC मॉडल विशेषता को अद्यतन करने में मदद की। जवाब के लिए धन्यवाद।
तिवारी

धन्यवाद ... .trigger ('परिवर्तन') पूरी तरह से काम करता है!
लुइसाओ

5

आप बस का उपयोग कर सकते हैं:

$('#select_id').val('fg')


2

जवाब देने में बहुत देर हो सकती है, लेकिन कम से कम कुछ लोगों को मदद मिलेगी।

आप दो विकल्प आज़मा सकते हैं:

यह वह परिणाम है जब आप इंडेक्स वैल्यू के आधार पर असाइन करना चाहते हैं, जहां '0' इंडेक्स है।

 $('#mySelect').prop('selectedIndex', 0);

'jr' का उपयोग न करें क्योंकि यह नवीनतम jquery के साथ पदावनत है।

जब आप विकल्प मूल्य के आधार पर चयन करना चाहते हैं तो इसे चुनें:

 $('#mySelect').val('fg');

जहाँ 'fg' विकल्प मान है


इंडेक्स आधारित चयन का उपयोग शायद ही कभी किया जाता है, लेकिन यह अच्छा विकल्प है कि परिदृश्य को देखते हुए आपने ड्रॉप डाउन सेट करने के लिए कुछ सामान्य कोड लिखे हैं और मान अलग-अलग डीडी के साथ भिन्न होते हैं। धन्यवाद :)।
दिव्या तिवारी

1

$('#dropdownid').val('selectedvalue');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id='dropdownid'>
    <option value=''>- Please choose -</option>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='selectedvalue'>There we go!</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
</select>


1

इस कोड ने मेरे लिए काम किया:

$(function() {
    $('[id=mycolors] option').filter(function() { 
        return ($(this).text() == 'Green'); //To select Green
    }).prop('selected', true);
});

इस HTML चयन सूची के साथ:

<select id="mycolors">
      <option value="1">Red</option>
      <option value="2">Green</option>
      <option value="3">Blue</option>
</select>

0

मेरे पास एक अलग स्थिति है, जहां ड्रॉप डाउन सूची मान पहले से ही कठिन कोडित हैं। केवल 12 जिले हैं, इसलिए jQuery के स्वतः पूर्ण UI नियंत्रण को कोड द्वारा पॉपुलेट नहीं किया गया है।

समाधान बहुत आसान है। क्योंकि मुझे अन्य पदों के माध्यम से उतारा जाना था, जहां यह माना गया था कि नियंत्रण गतिशील रूप से भरा जा रहा था, मुझे जो चाहिए था वह नहीं मिल रहा था और फिर अंत में इसका पता लगा लिया।

तो जहां आपके पास HTML नीचे है, चयनित इंडेक्स सेट करना इस तरह सेट किया गया है, -input भाग पर ध्यान दें, जो ड्रॉप आईडी के अतिरिक्त है:

$('#project-locationSearch-dist-input').val('1');

                <label id="lblDistDDL" for="project-locationSearch-input-dist" title="Select a district to populate SPNs and PIDs or enter a known SPN or PID." class="control-label">District</label>
                <select id="project-locationSearch-dist" data-tabindex="1">
                    <option id="optDistrictOne" value="01">1</option>
                    <option id="optDistrictTwo" value="02">2</option>
                    <option id="optDistrictThree" value="03">3</option>
                    <option id="optDistrictFour" value="04">4</option>
                    <option id="optDistrictFive" value="05">5</option>
                    <option id="optDistrictSix" value="06">6</option>
                    <option id="optDistrictSeven" value="07">7</option>
                    <option id="optDistrictEight" value="08">8</option>
                    <option id="optDistrictNine" value="09">9</option>
                    <option id="optDistrictTen" value="10">10</option>
                    <option id="optDistrictEleven" value="11">11</option>
                    <option id="optDistrictTwelve" value="12">12</option>
                </select>

स्वत: पूर्ण नियंत्रण के बारे में कुछ और पता चला है कि इसे कैसे ठीक से अक्षम / खाली करना है। हमारे पास एक साथ काम करने के 3 नियंत्रण हैं, जिनमें से 2 परस्पर अनन्य हैं:

//SPN
spnDDL.combobox({
    select: function (event, ui) {
        var spnVal = spnDDL.val();
        //fire search event
        $('#project-locationSearch-pid-input').val('');
        $('#project-locationSearch-pid-input').prop('disabled', true);
        pidDDL.empty(); //empty the pid list
    }
});
//get the labels so we have their tool tips to hand.
//this way we don't set id values on each label
spnDDL.siblings('label').tooltip();

//PID
pidDDL.combobox({
    select: function (event, ui) {
        var pidVal = pidDDL.val();
        //fire search event
        $('#project-locationSearch-spn-input').val('');
        $('#project-locationSearch-spn-input').prop('disabled', true);
        spnDDL.empty(); //empty the spn list
    }
});

इसमें से कुछ पोस्ट के दायरे से परे है और मुझे नहीं पता कि इसे कहाँ रखा जाए। चूंकि यह बहुत उपयोगी है और यह पता लगाने में कुछ समय लगा, इसलिए इसे साझा किया जा रहा है।

इसके अलावा ... इस तरह के एक नियंत्रण को सक्षम करने के लिए, यह (अक्षम, गलत) और नहीं (सक्षम, सत्य) - यह पता लगाने में थोड़ा समय लगा। :)

नोट करने के लिए केवल दूसरी चीज, पोस्ट के अलावा बहुत कुछ है:

    /*
Note, when working with the jQuery Autocomplete UI control,
the xxx-input control is a text input created at the time a selection
from the drop down is picked.  Thus, it's created at that point in time
and its value must be picked fresh.  Can't be put into a var and re-used
like the drop down list part of the UI control.  So you get spnDDL.empty()
where spnDDL is a var created like var spnDDL = $('#spnDDL);  But you can't
do this with the input part of the control.  Winded explanation, yes.  That's how
I have to do my notes or 6 months from now I won't know what a short hand note means
at all. :) 
*/
    //district
    $('#project-locationSearch-dist').combobox({
        select: function (event, ui) {
            //enable spn and pid drop downs
            $('#project-locationSearch-pid-input').prop('disabled', false);
            $('#project-locationSearch-spn-input').prop('disabled', false);
            //clear them of old values
            pidDDL.empty();
            spnDDL.empty();
            //get new values
            GetSPNsByDistrict(districtDDL.val());
            GetPIDsByDistrict(districtDDL.val());
        }
    });

सभी ने साझा किया क्योंकि मक्खी पर इन चीजों को सीखने में बहुत लंबा समय लगा। आशा है कि यह उपयोगी है।


आप यहाँ विषय से हट गए हैं। सवाल एक साधारण परिवर्तन है जो JQuery के साथ इसके मूल्य पर आधारित है। इसमें कोई UI तत्व शामिल नहीं हैं।
मार्क डब्ल्यू


0

आप नाम से ड्रॉपडाउन विकल्प मान का चयन कर सकते हैं

// deom
jQuery("#option_id").find("option:contains('Monday')").each(function()
{
 if( jQuery(this).text() == 'Monday' )
 {
  jQuery(this).attr("selected","selected");
  }

});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.