如何选择jQuery下拉val()并触发事件?

我在下拉列表中注册了一个jQuery插件,如下所示:

$('#country').linkToStates('#province'); 

我手动选择下拉这样的:

 $('#country').val('United States'); 

但是onchange事件并没有触发在它之前注册的.linkToStates()。 所以看起来val()只改变了下拉位置,但实际上并没有改变onchange事件。 有人可以帮忙吗?

顺便说一句,这是注册的代码,如果它有帮助:

  $.fn.extend({ linkToStates: function(state_select_id) { $(this).change(function() { var country = $(this).attr('value'); $(state_select_id).removeOption(/.*/); switch (country) { case 'Canada': $(state_select_id).addOption(canadian_provinces, false); break; case 'United States': $(state_select_id).addOption(us_states, false); break; default: $(state_select_id).addOption({ '' : 'Please select a Country'}, false); break; } }); } }); 

试试这个:

 $('#country').val('United States').trigger('change'); 

甚至

 $('#country').val('United States').change(); 

你可以在这里阅读更多关于.trigger().change() 信息

您可以将您的onchanged代码放入单独的函数中,然后在更改值后调用它。