Добрый день!
Сейчас имеется проблема с такими настройками:
Drupal 7.
При клике по кнопке выводится диалоговое окно с формой. В форме имеется поле для вставки изображения, оформленное вот таким образом:
<?php
$form['image'] = array(
'#type' => 'managed_file',
'#title' => t(''),
'#default_value' => $data->image,
'#progress_indicator' => 'bar',
'#progress_message' => 'Wait ...',
'#upload_location' => 'public://images/',
'#theme' => 'passport_image_widget',
);
?>
Данный блок успешно отрабатывается аяксом (превью загруженного изображения показывается).
Однако, есть "другая часть" формы, которая привязана к кнопке "Save", которая оформлена вот так:
<?php
$form['actions']['save'] = array(
'#type' => 'submit',
'#name' => 'save',
'#value' => 'Сохранить',
'#attributes' => array(
'class' => array(
'btn btn-primary btn-save'
),
),
"#ajax" => array(
"callback" => "form_submit",
"wrapper" => "add-wrapper",
),
);
?>
Если все поля заполнены нормально, то форма отправляется нормально, в диалоговом окне появляется результат работы drupal_set_message. Однако, если в процессе валидации чего-то не хватает, то ajax перестает работать и форма пытается отработать просто ПОСТ-запрос на сервер по action атрибуту...
И я даже не понимаю, отчего так происходит - кто меняет этот злосчастный урл и в какой момент.
Может кто сталкивался с чем-то подобным? Хочется понять, хотя бы, в какую сторону копать.