Иногда лучше перемещать элементы поля на шаге #after_build процесса создания формы.
в hook_form_alter, вы устанавливаете свою функцию после сборки следующим образом:
function mymodule_form_alter(&$form, &$form_state, $form_id)
{
$form['#after_build'][] = 'mymodule_myform_after_build';
}
Затем вы определяете свою функцию after_build следующим образом:
function mymodule_myform_after_build($form)
{
//do stuff to the form array
return $form;
}
Я думаю, вы даже можете определить after_build для отдельных элементов.
В любом случае, это хороший способ изменить форму после того, как все модули имеютсделал свое дело.