Я решил свою проблему. Сначала я должен был установить обработчик событий для раскрывающегося адреса, который, когда это произошло, вызвал функцию. Затем эта функция получает значение из выпадающего списка состояний корабля.
Я также добавил в setTimeout, потому что при активации обработчика адреса захватывалось состояние корабля до того, как значение могло прийти, в результате чего значение было отложено или равно нулю.
// Global defined variables //
var SelectedShipState
var selectElement = document.getElementById('ship-state-id');
var addressBook = document.getElementById('address-book-id');
// Change Event: When an address from the address book is selected ...
addressBook.addEventListener('change', (addressEvent) => {
// ... run this function to get the ship state.
setTimeout(addressFunction, 1000);
})
// When this function runs ...
function addressFunction() {
// ... get the value from the ship state select option.
SelectedShipState = this.selectElement.options[selectElement.selectedIndex].value;
RunRule();
}
// Change Event : Get the option each time it is selected //
selectElement.addEventListener('change', (changeEvent) => {
SelectedShipState = `${changeEvent.target.value}`;
RunRule();
})
function RunRule () {
// do something ...
}