jQuery получение значения выбранного элемента при возврате на страницу кнопкой назад - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть 3 выбора на моей странице. Когда я выбираю несколько вариантов на первых двух выборках, третий заполняется. Он отлично работает с jquery.

Вот HTML:

<form action="results.php" method="get">
<select name="cible[]" id="cible" class="kii-select-cible">
    <option value="">Je suis</option>
    <option value="52">Demandeur d’emploi</option>
    <option value="51">Entreprise / Organisation</option>
</select>
<select name="diplome[]" id="diplome" class="kii-select-diplome">
    <option value="">Je recherche</option>
    <option value="61">Diplôme Universitaire</option>
    <option value="59">Doctorat</option>
</select>
<select name="domaine[]" id="domaine" class="kii-select-domaine">
    <option value="">Domaine</option>
</select>

<input id="search-button" name="search-button" value="Trouver" type="submit">
<div id="dom_values" style="display: none">
    <div id="cib_dip_52_59_1">
        <div class="dom_id">71</div>
        <div class="dom_label">MAE - Double compétences</div>
    </div>
    <div id="cib_dip_52_59_2">
        <div class="dom_id">67</div>
        <div class="dom_label">Management - Stratégie</div>
    </div>

    <div id="cib_dip_52_59_3">
        <div class="dom_id">69</div>
        <div class="dom_label">Management de l'Innovation</div>
    </div>
    <div id="cib_dip_52_59_4">
        <div class="dom_id">68</div>
        <div class="dom_label">Management par projets</div>
    </div>
</div>
</div>

У меня есть функция с именем displaySelectDomain, и эта функция вызывается всякий раз, когда пользователь меняет выбранный элемент в одном из 2 вариантов выбора:

    $('#cible').change(function () {
    displaySelectDomain();
});
$('#diplome').change(function () {
    displaySelectDomain();
});

Вот содержимое функции, в основном она воссоздает массив из содержимого HTML, скрытого на странице, и может восстановить выбор, в зависимости от выбора пользователя:

    function displaySelectDomain() {
    var selectedPublic = $('#cible').children("option:selected").val();
    var selectedDiplome = $('#diplome').children("option:selected").val();
    var selectDomaineOptions = '<option value="">Domaine</option>';
    $('#domaine').empty().append(selectDomaineOptions);
    if (selectedPublic > 0 && selectedDiplome > 0) {
        selectDomaineOptions = '';
        for (var i = 0; i < dom_array.length; i++) {
            var dom_values = dom_array[i];
            if (dom_values.cib_id == selectedPublic && dom_values.dip_id == selectedDiplome) {
                selectDomaineOptions = '<option value="' + dom_values.domaine.id + '">' + dom_values.domaine.label + '</option>';
                $('#domaine')
                    .append(selectDomaineOptions)
                ;
            }
        }
    }
}

Затем я проверяю форму и перенаправляюсь на другую страницу.

Когда я нажимаю кнопку "Назад", выбранные элементы все еще выбираются, но для некоторых причина, jquery всегда возвращает 0 как выбранный элемент.

Поэтому, когда функция displaySelectDomain вызывается при загрузке страницы, она ничего не делает, в то время как для селекторов не выбрано их значение по умолчанию.

Не могли бы вы мне помочь ? Я пытался получить выбранное значение по-разному, но оно всегда возвращает 0, и я не понимаю, почему.

Спасибо за вашу помощь.

...