我想使用jQuery触发select下拉列表的onChange事件。我使用以下命令将函数与onChange事件连接起来:$(element2).change(populateRelatedDropdowns);
当我手动更改select控件的值时,它正常工作。但是当我想通过使用:$(entydd).trigger('change');
触发onChange时,它根本不起作用。
请帮助我。感谢。
使用选择下拉列表连接事件的代码:
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');
}
希望这个额外的代码部分有所帮助。
答案 0 :(得分:2)
我认为应该是
$('#'+entydd).trigger('change');
答案 1 :(得分:0)
尝试改写:
for (i = 0; i < customArray.length; i++)
{
var mySelect = $((i+1) + ".enty");
var myVal = customArray[i].custom_value;
mySelect.val(myVal);
}
我还没有对它进行测试,但是(在select上设置值),如果你通过jquery,而不是纯js,可能会触发更改事件。
如果它没有触发更改,您可以添加第二个调用:myChanged(mySelect,myVal)