Запуск обмена 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 для конкретного элемента.