Выберите значение изменяется, но видимая опция не - PullRequest
1 голос
/ 13 февраля 2020

Я работаю с WordPress, переопределив файл cart-shipping.php (WooCommerce). После заполнения выбора с опциями:

<?php
if (strpos($chosen_method, 'pickup_') !== false) {
    printf('<li><select name="select" id="method_pickups" onchange="handlePickup()">');
    foreach ($select as $key => $value) {
        printf('<option value="'.$key.'">'.$value.'</option>');
    }
    printf('</select></li>');
}
?>

Я хочу установить выбранное значение, получив его в хранилище сеанса, используя javascript, например:

document.addEventListener('DOMContentLoaded', () => {
    const method_pickups = document.querySelector('#method_pickups');
    method_pickups.value = sessionStorage.getItem('method_pickups_soda');
    handlePickup();
});

const handlePickup = () => {
    const method_pickups = document.querySelector('#method_pickups');
    const billing_pickups = document.querySelector('#billing_pickups');
    sessionStorage.setItem('method_pickups_soda', method_pickups.value);

    if (!window.location.href.includes('carrito')) {
        billing_pickups.value = method_pickups.value;

        const index = method_pickups.selectedIndex;
        const display = document.querySelector('#display_pickup');
        display.value = method_pickups.options[index].text;
    }
};

Проблема в том, что даже если значение его изменяется (потому что просто console.log() отображает новое значение), это визуально та же опция. Что здесь происходит?

Заранее спасибо и извините за мой плохой английский sh.

1 Ответ

2 голосов
/ 13 февраля 2020

Что ж, проблема заключалась в обработке запроса ajax, который предотвратил изменение. Чтобы решить мою проблему, я ждал ее окончания:

jQuery(document).ajaxStop(function () {
    const method_pickups = document.querySelector('#method_pickups');
    method_pickups.value = sessionStorage.getItem('method_pickups_soda');
    handlePickup();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...