Рейтинг:0

hook_form_alter заставляет js на любой другой форме не работать

флаг zw

я использую крючок_form_alter() изменить поле.

функция mymodule_form_alter(&$form, &$form_state) {
  если ($form['#id'] == 'my_form') {
    $form['my_field']['#value'] = 'Новое значение';
  }
}

Он изменяет значение поля на новое значение, но проблема в том, что как только я включаю этот модуль, JavaScript в формах перестает работать. Например, выпадающие списки, автозаполнение, AJAX больше не работают.

Я не могу понять, из-за чего это.

флаг cn
Попробуйте временно изменить тему (на любую из тем, включенных в ядро, которую вы еще не используете) и посмотрите, возникает ли ошибка по-прежнему.
Jaypan avatar
флаг de
Вы неправильно диагностируете свою проблему, так как этот код не вызовет проблемы, с которой вы столкнулись.
No Sssweat avatar
флаг ua
Проверьте консоль браузера на наличие ошибок JS.
apaderno avatar
флаг us
@Jaypan прав: этот код не может вызывать проблем с кодом JavaScript. Вы не получите идентификатор формы из `$form['#id']`, но это другой вопрос.
apaderno avatar
флаг us
Кроме того, прежде чем устанавливать `$form['my_field']['#value']`, вы должны проверить, установлено ли `$form['my_field']`.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.