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

<select>
<option value="0">Select</option>
<option value="1">John Smith</option>
<option value="2">Jane Smith</option>
<option value="3">John Doe</option>
</select>    

Я знаю, что этот Jquery работает для статических выпадающих

$("select").change(function () {
    $("select option[value='" + $(this).data('index') + "']").prop('disabled', false);
    $(this).data('index', this.value);
    $("select option[value='" + this.value + "']:not([value='0'])").prop('disabled', true);
});

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

Вот мой упрощенный код создания:

function createRow() {
var table = $('#addTable');

table.append('<select class="ui fluid search dropdown" ><?php foreach ($taskdescriptions as $task) : ?> <option value="<?php echo $task ?>"><?php echo str_replace("|"," ",$task);  ?></option><?php endforeach; ?></select>');
    $("select option[value='" + $(this).data('index') + "']").prop('disabled', false);
    $(this).data('index', this.value);
    $("select option[value='" + this.value + "']:not([value='0'])").prop('disabled', true);


}

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

4
Murderous Koala 20 Дек 2019 в 18:55

1 ответ

Лучший ответ

Благодаря Heretic Monkey и Nikki9696 Решение: $ ('# addTable'). On ('change', 'select', function () {}

2
Murderous Koala 20 Дек 2019 в 16:29