Вопрос

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top