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

Tru*_*an1 11 javascript jquery jquery-plugins jquery-events

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

$('#country').linkToStates('#province');
Run Code Online (Sandbox Code Playgroud)

我手动选择下拉这样的:

$('#country').val('United States');
Run Code Online (Sandbox Code Playgroud)

但是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;
        }
      });
    }
  });
Run Code Online (Sandbox Code Playgroud)

Har*_*til 24

试试这个:

$('#country').val('United States').trigger('change');
Run Code Online (Sandbox Code Playgroud)

甚至

$('#country').val('United States').change();
Run Code Online (Sandbox Code Playgroud)

你可以.trigger() 在这里这里阅读更多.change()