Как выбрать jQuery drop down val() И запустить событие?

У меня есть плагин jQuery, зарегистрированный на выпадающем списке:

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

Я вручную выбираю drop down следующим образом:

$('#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;
        }
      });
    }
  });

Ответ 1

Попробуйте следующее:

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

или даже

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

Вы можете узнать больше о .trigger() здесь и .change() здесь

Ответ 2

Вы можете просто поместить свой код onchanged в отдельную функцию, а затем вызвать его после изменения значения.