Запуск обмена Ajax в списке выбора

Я работаю над проектом Drupal, который использует модуль Editable fields.

Используя этот модуль, я раскрываю раскрывающийся список параметров текста. Работает просто отлично. Вы нажимаете на список, выбираете опцию и опция обновляется через Ajax.

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

jQuery('select#edit-field-status-0-field-status-und').val(1);

... моя область консоли браузера довольна кодом, но обновление Ajax не происходит. Я старался:

jQuery('select#edit-field-status-0-field-status-und').val(1).change();

Опять нет ошибок, но событие Ajax по-прежнему не выполняется.

2 ответа

Решение

Код, который я использовал как воссозданный ниже, был правильным:

jQuery('select#edit-field-status-0-field-status-und').val(1).change();

Я выяснил причину, по которой он не работал, потому что идентификатор целевого элемента изменялся динамически. Поэтому, когда я впервые осмотрел и обнаружил edit-field-status-0-field-status-und, тот же элемент изменил бы идентификаторы на что-то вроде edit-field-status-0-field-status-und - 1.

Это отбрасывало вещи и создавало впечатление, что мой код не работает.

Спасибо @gts за ваш вклад.

$('#edit-field-status-0-field-status-und').val("1");

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

В качестве альтернативы следующее более подробно:

$('#edit-field-status-0-field-status-und option').eq(1).prop('selected', true);

Также это не функция AJAX, это просто Jquery, обновляющий DOM для конкретного элемента.

Другие вопросы по тегам