2010-05-24 22 views
26

में काम नहीं करता है ट्रिगर के साथ एक ड्रॉपडाउन सूची कैसे खोली जा सकती है? mousedown और mouseup भी काम नहीं करता है -चुनिंदा बॉक्स पर ट्रिगर पर क्लिक करें jQuery

$('select').trigger('click'); 

बस टिप्पणी के लिए:

यहाँ कोड है जो काम नहीं करता है।

+1

सोचो इस समाधान की जरूरत है: http://stackoverflow.com/questions/499405/change-selected-value-of-drop-down-list-with-jquery –

+0

मैंने इसे काम करने के लिए मिला: http://stackoverflow.com/a/10136523/2541 –

+0

संभावित डुप्लिकेट [आप कैसे प्रोग्रामेटिक रूप से ड्रॉप डाउन करने के लिए HTML चयन को बता सकते हैं (उदाहरण के लिए, माउसओवर के कारण)?] (http: // stackoverflow .com/प्रश्न/24 9 1 9 2/कैसे-कर सकते हैं-प्रोग्राम-रूप से बताएं-एक-एचटीएमएल-चयन-टू-ड्रॉप-डाउन-उदाहरण-देय) –

उत्तर

9

जो आप प्राप्त करने की कोशिश कर रहे हैं वह असंभव है। भले ही आप click को ट्रिगर करते हैं, तो ड्रॉप डाउन सूची तब तक नहीं खुलती है जैसे उपयोगकर्ता ने उस पर क्लिक किया था। यदि आप वर्तमान में चयनित मूल्य को नए के साथ बदलना चाहते हैं तो आप val फ़ंक्शन का उपयोग कर सकते हैं। मुझे लगता है कि एकमात्र समाधान पूरे यूआई देखो और divs का उपयोग कर select तत्व के अनुकरण को अनुकरण करना है।

+1

प्रतिक्रिया के लिए धन्यवाद। मैं मूल्य बदलना नहीं चाहता हूं, सिर्फ सूची खोलना चाहता हूं ... ऐसा लगता है कि इसके लिए संपत्तिगत समाधान नहीं है ... – sasa

11
 $('select').children('option').each(function() { 
      if ($(this).is(':selected')) 
      { $(this).trigger('change'); } 
     }); 
+1

यह अन्य संलग्न घटनाओं को आग लग सकता है जो आप शायद नहीं चाहते हैं। –

-1

इस प्रकार आप कर सकते हैं:

HTML:

<form> 
    <select> 
    <option value="opt1">Option 1</option> 
    <option value="opt2">Option 2</option> 
    <option value="opt3">Option 3</option> 
    </select> 
    <input type="submit" value="OK"></input> 
</form> 

(jQuery के साथ) जावास्क्रिप्ट:

$("option[value='opt2']").attr("selected", "selected"); // Selects option 2 
    $("input[type='submit']").trigger("click"); // Submits the form 
+1

यह चयन नहीं खोलता है, इसके बजाय यह फ़ॉर्म सबमिट करता है। –

4

प्रोग्राम के रूप में एक ड्रॉप-डाउन पर क्लिक करने के लिए कोई उचित तरीका नहीं है ।

आप या तो के माध्यम से एक विकल्प का चयन कर सकते हैं:

$('#sourceOptions>option:eq(0)').prop('selected', 'selected'); 

आप एक उपयोगकर्ता क्लिक अनुकरण करना चाहते हैं: आप यह करने के लिए @Renso यह कहता है:

$('#sourceOptions>option:eq(0)').prop('selected', 'selected').trigger('change'); 
7

मुझे थोड़ी देर लिया

(क्रोम & सफारी केवल)

function open(elem) { 
    if (document.createEvent) { 
     var e = document.createEvent("MouseEvents"); 
     e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 
     elem[0].dispatchEvent(e); 
    } else if (element.fireEvent) { 
     elem[0].fireEvent("onmousedown"); 
    } 
} 
: लेकिन एक समाधान पाया

http://jsfiddle.net/oscarj24/GR9jU/

+5

बंद करें। यह क्रोम और सफारी में काम करता है, लेकिन फ़ायरफ़ॉक्स या आईई में काम नहीं करता है। –

+1

यह कोड फ़ायरफ़ॉक्स पर काम नहीं कर सकता है – smallg

संबंधित मुद्दे