jQuery for force触发onChange of select下拉列表

时间:2012-02-25 10:29:29

标签: jquery events triggers drop-down-menu onchange

我想使用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');
}

希望这个额外的代码部分有所帮助。

2 个答案:

答案 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)