2010-05-24 38 views
26

如何使用觸發器打開下拉列表?點擊觸發選擇框在jQuery中不起作用

這裏是不起作用的代碼:

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

只是爲了說明 - 鼠標按下和鼠標鬆開也不起作用。

+1

認爲這是你需要的解決方案: http://stackoverflow.com/questions/499405/change-selected-value-of-drop-down-list-with-jquery – 2010-05-24 08:23:30

+0

我已經得到這個工作:http://stackoverflow.com/a/10136523/2541 – 2012-10-25 17:51:49

+0

可能重複的[你如何編程方式告訴HTML選擇下拉(例如,由於鼠標懸停)?](http:// stackoverflow .com/questions/249192/how-can-you-program-by-tell-an-html-select-to-drop-down-for-example-due) – 2012-10-25 17:52:17

回答

9

你試圖實現的是不可能的。即使你觸發click,下拉列表也不會像用戶點擊它一樣打開。如果您想用新的值更改當前選定的值,則可以使用val函數。我想唯一的解決方案是模擬使用div的select元素的整個UI外觀。

+1

感謝您的回覆。我不想改變價值,只是想打開列表...似乎沒有這方面的財產解決方案... – sasa 2010-05-24 08:37:26

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

這可能會觸發其他您可能不想要的附加事件。 – 2014-08-06 13:49:35

-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> 

的JavaScript(用jQuery):

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

這不會打開選擇,而是提交表單。 – 2015-07-24 06:47:17

4

有點擊下拉編程不正確的方法。

您可以通過選擇一個選項:如果要模擬用戶點擊

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

:你必須爲@Renso說,做到這一點:

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

我花了一段但找到了解決方案:

(鉻&的Safari ONLY)

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

關閉。這適用於Chrome和Safari,但不適用於Firefox或IE。 – 2014-08-15 22:14:14

+1

此代碼無法在Firefox上運行 – smallg 2014-10-17 06:52:47