Как проверить содержимое в нескольких полях выбора - PullRequest
0 голосов
/ 10 марта 2020

Я новичок в javascript и машинописи, мне нужна помощь с проблемой, с которой я сталкиваюсь.

Мне нужно частично приступить к работе со сценарием, после того как я выбрал значение из первое поле выбора из столбца «Unidade» поле выбора под ним показывает то же значение из приведенного выше, однако, как вы можете видеть на прикрепленном изображении, оба поля остаются с включенной обязательной опцией - как если бы никакое значение не сохранялось или сохранены в них - так что невозможно приступить к оформлению заказа. Не могли бы вы помочь мне решить эту проблему?

Я прохожу онлайн-курс, но все говорят, что это может быть ajax не загрузка, но я действительно даже не знаю, где его искать.

PS: Мой код и изображение прилагаются ниже:

Мой HTML:

<select name="place" location-select data-item-id="<?php echo $_item->getId(); ?>" data-product-id="<?php echo $_item->getProductId(); ?>" data-option-id="<?php echo $optionId; ?>">
            <?php if ($placeList) : ?>
                <?php if (is_string($placeList)) : ?>
                    <option value="1"><?php echo $placeList ?></option>
                <?php else : ?>
                    <option value="">Selecione...</option>
                    <?php foreach ($placeList as $key => $place) : ?>
                        <?php $_formatedOptionValue = $this->getFormatedOptionValue($place) ?>

                        <?php if ($_formatedOptionValue['value'] === $selectedOption) : ?>
                            <option selected="selected" value="<?php echo $key; ?>">
                                <?php echo $_formatedOptionValue['value'] ?>
                            </option>
                        <?php else : ?>
                            <option value="<?php echo $key; ?>">
                                <?php echo $_formatedOptionValue['value'] ?>
                            </option>
                        <?php endif; ?>

                    <?php endforeach; ?>
                <?php endif; ?>

            <?php else : ?>
                <option value="1">Unidade Padrão</option>
            <?php endif; ?>
        </select>

Мой Машинопись:

class UnitSelection {
get targets(): NodeListOf<HTMLSelectElement> {
    return document.querySelectorAll('[location-select]');
}

init(): void {
    this.attachListeners();
}

attachListeners(): void {
    this.targets.forEach(option => {
        option.addEventListener('change', (e: Event) =>
            this.handleChange(e)
        );
    });
}

handleChange(e: Event): void {
    const target: EventTarget | null | HTMLSelectElement = e.currentTarget;
    if (!(target instanceof HTMLSelectElement)) {
        return;
    }

    const value = target.value;

    this.targets.forEach(target => {
        if (target.value == '') {
            target.value = value;
        }
    });
}} const unitSelection = new UnitSelection(); unitSelection.init();

Заранее спасибо ...

...