Отработка AJAX при выборе <select>

188
26 декабря 2017, 16:18

Есть

<select name="test" class="select-test-1">
    <option value="1">Some text</option>
    <option value="2">Some text</option>
    <option value="3">Some text</option>
    <option value="4">Some text</option>
    <option value="5">Some text</option>
</select>

Нужно при выборе элемента, получить его value (там хранится ID поста в Wordpress) и с помощью AJAX передать его в обработчик. Код работает, но срабатывает только один раз - первый, в дальнейшем после выбора другого элемента тега <select> перезагрузка не происходит. Пробовал этот же код без AJAX в консоль выводится каждый раз значение при выборе другого элемента из списка, с AJAX не работает. Не сильно с ним знаком, т.ч. вполне подозреваю что сделал что-то не так.

$('.select-test-1').on('change', function() {
    var selected = $(this).val();
    $.ajax({
        url: '<?php echo admin_url("admin-ajax.php") ?>',
        type: 'POST',
        data: {
            action: 'myajax',
            postID: selected
        },
        beforeSend: function(xhr) {},
        success: function(data) {
            $('.card-item-1').html(data);
        },
        error: function() {
            alert('Error');
        }
    });
});
Answer 1

но срабатывает только один раз

Элемент '.select-test-1' находится внутри '.card-item-1'. При назначении $('.card-item-1').html(data); все элементы внутри '.card-item-1' создаются заново - а старые (со своими событиями) уничтожаются. Используйте делегирование при назначении события:

$(document).on('change', '.select-test-1', function() {
READ ALSO
Вызвать плагин как функцию Jquery

Вызвать плагин как функцию Jquery

Таким образом наш плагин можно вызвать так:

237
Сокрытие столбцов таблицы и чекбокс

Сокрытие столбцов таблицы и чекбокс

Делаю сокрытие столбцов таблицы по чекбоксамJS код взял отсюда

209
Исполнение html страниц на linux сервере

Исполнение html страниц на linux сервере

Есть linux серверНа нем лежит html страница

184
JS - кроссдоменный запрос любой ценой

JS - кроссдоменный запрос любой ценой

Есть ли вообще способы отправить кроссдоменный запрос на JavaScript? Может быть как-нибудь через атрибут src? PS

212