在select框上点击触发器在jQuery中不起作用

如何才能打开下拉列表触发器?

这里是不工作的代码:

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

只要注意 – mousedown和mouseup也不起作用。

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

你试图达到什么是不可能的。 即使触发点击 ,下拉列表也不会打开,就像用户点击它一样。 如果你想改变当前选定的值,你可以使用val函数。 我想唯一的解决scheme是模拟使用div的select元素的整个UI外观和感觉。

花了我一会儿,但find了解决办法:

(仅限Chrome和Safari)

 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/

没有正确的方法来以编程方式点击下拉菜单。

您可以通过以下方式select一个选项:

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

如果你想模拟一个用户点击:你必须这样做@Renso说:

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

你可以这样做:

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