Событие jQuery при выборе определенной опции в структуре Ajax HTML - PullRequest
0 голосов
/ 17 марта 2019

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

HTML

<span class="input-wrapper">
    <select name="country" id="billing_country" class="country_select" autocomplete="country" tabindex="-1" aria-hidden="true">
        <option value="" selected="selected">Select a country…</option>
        <option value="BE">Belgium</option>
        <option value="NL" selected="selected">Netherlands</option>
    </select>
    <span class="select2-container" dir="ltr" style="width: 100%;">
        <span class="selection">
            <span class="select2-selection" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-labelledby="select2-billing_country-container" role="combobox">
                <span class="select2-selection__rendered" id="select2-billing_country-container" role="textbox" aria-readonly="true" title="Belgium" style="color: rgb(51, 51, 51);">Belgium</span>
            </span>
        </span>
    </span>
</span>

My jQuery Попытка:

jQuery('#billing_country').change(function(){
    jQuery(document).ajaxComplete( function() {
        if( jQuery('#select2-billing_country-container').attr('title') == 'Netherlands'){
            jQuery('#billing_address_2_field').addClass('hide'); // random event
        }
    });
});

Приведенная выше ситуация такова, что <option> не изменяется с атрибутом selected="selected" при выборе другой страны. Единственное, что меняется, это атрибут title из #select2-billing_country-container. И при изменении выбора Ajax также участвует.

Что мне не хватает или как это может быть лучше?


Обновление Вышеупомянутый jQuery был в целом правильным, у него были некоторые конфликты с другими функциями jQuery. Единственное, что отличало его, это то, что при загрузке страницы в раскрывающейся структуре используются общие элементы <select><option>, но при выборе другого параметра он превращается в запрос Ajax с использованием <span>. Так что выше и с ответом Дуга дал полный результат.

1 Ответ

1 голос
/ 17 марта 2019

ОБНОВЛЕНИЕ

При загрузке страницы просматривается меню выбора, а не структура HTML, поэтому при загрузке страницы необходим следующий код:

    if( jQuery('#billing_country').val() == 'NL'){
        jQuery('#billing_address_2_field').css('display', 'none');
    }

и вы можете оставить событие изменения, как оно есть на вашей странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...