【发布时间】:2012-02-25 10:29:28
【问题描述】:
我想使用 jQuery 触发选择下拉菜单的 onChange 事件。我已使用以下方法将函数与 onChange 事件联系起来:$(element2).change(populateRelatedDropdowns); 当我手动更改选择控件的值时,它工作正常。但是当我想通过使用触发 onChange 时:$(entydd).trigger('change'); 它根本不起作用。
请帮助我。谢谢。
使用下拉列表连接事件的代码:
var element2 = document.createElement("select");
$(element2).change(populateAttrsDropdowns);
function populateAttrsDropdowns()
{
//does something
}
到目前为止还算顺利。当我手动更改下拉值时有效。
现在,当我手动设置下拉菜单的选项值并希望触发 onChange 时,我有一个要求。下面的代码(在不同的函数中):
for (i = 0; i < customArray.length; i++)
{
$('#btnAdd').trigger('click');
var entydd = (i+1) + ".enty"; //this is the name of my dropdowns..there are a couple
document.getElementById(entydd).value = customArray[i].custom_value;
$(entydd).trigger('change');
}
希望这个额外的代码部分有所帮助。
【问题讨论】:
-
请在其上下文中显示给您带来问题的代码。
-
$(element2).trigger('change');不是$(entydd).trigger('change'); -
代码太大,无法粘贴到这里。我正在编辑我的第一篇文章,以包含尽可能多的相关代码。
-
@mgraph :entydd 是我在不同功能中使用的。它指的是相同的选择下拉菜单。
-
@Heera:你的建议是改变选项本身的值,而不是选择的值,这是它的选定元素。而且,您应该使用 jQuery 来执行此操作:$("#select").val("optVal");,或者您所说的 $('#select:nth-child(i)').val(' newOptVal');
标签: jquery events triggers drop-down-menu onchange