如何选择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代码放入单独的函数中,然后在更改值后调用它。