Как выбрать JQuery выпадающего val () И вызвать событие? - PullRequest
11 голосов
/ 27 апреля 2011

У меня есть плагин 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;
        }
      });
    }
  });

Ответы [ 2 ]

23 голосов
/ 27 апреля 2011

Попробуйте это:

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

или даже

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

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

0 голосов
/ 27 апреля 2011

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

...