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

时间:2011-04-27 17:34:40

标签: javascript jquery jquery-plugins javascript-events

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

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

我手动选择下拉列表:

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

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

BTW,这是注册的代码,如果它有帮助:

  $.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;
        }
      });
    }
  });

2 个答案:

答案 0 :(得分:23)

试试这个:

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

甚至

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

您可以详细了解.trigger() here.change() here

答案 1 :(得分:0)

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