динамически устанавливаемое значение для html выберите не инициирующее изменение, даже с помощью trigger () или change () в js - PullRequest
0 голосов
/ 29 апреля 2020

Я использую API Google для получения некоторых данных и автозаполнения некоторых полей в моей форме.

Поведение по умолчанию состоит в том, что когда я выбираю определенную "страну" из выпадающего списка вручную, то с сервера я получаю списки или раскрывающийся список для "Регион" html выберите.

Поскольку я использую Google API, поэтому я динамически меняю страну, но я не получаю списки для региона, поскольку я проверил, что событие "Изменить" не получает срабатывает на "страну" html выберите. Я попытался .trigger ("изменить") и .change (), но ничего не работает, или я могу сказать, что событие изменения не запускается.

Примечание :: Код для регионов, заполняемых опциями выбора, когда мы выбираем конкретную страну, написан на бэкэнде, поэтому у меня нет доступа или я не могу сделать запрос API для конкретной страны. Мой код ниже ::

function fillInAddress() {
  var place = autocomplete.getPlace();

  for (var i = 0; i < place?.address_components?.length; i++) {
    var addressType = place.address_components[i].types[0];

    if (componentForm[addressType]) {
      var val = place?.address_components[i][componentForm[addressType]];
      document.getElementById(addressType).value = val;

    }

   // for autoselect of region from google API
    if(addressType == "administrative_area_level_1"){
       regionkey = place?.address_components[i]?.long_name;
       regionvalue = place?.address_components[i]?.long_name;   
    }

   // for autoselect of country from Places API
   if(addressType == "country"){
     countryKey = place?.address_components[i]?.long_name;
     countryValue = place?.address_components[i]?.short_name.toUpperCase();
     $('#order_shipping_address_country').val(countryValue);
         $('#order_shipping_address_country').trigger('change'); 
         // the issue is here it seems

    }   

  }

}

Код работает нормально для других полей, поэтому я дал только фрагмент здесь, но событие изменения здесь не запускается. Почему это происходит?

...