目标:我想使用hook_form_alter在提交按钮后面放置一个文本。
下面是我的代码但是如果我在数组中使用权重键,那么它的位置确实在表单中移动但不在提交/保存按钮下面。我可以在保存按钮下面做些什么呢?
$xdmp_twoshow="text";
$form['previewxdmp'] = array(
'#type'=>'markup',
'#markup'=>$xdmp_toshow,
'#weight' => 35,
);
答案 0 :(得分:12)
每个元素都可以有#prefix
和#suffix
属性,它会在渲染输出后立即放置text / HTML。考虑到这一点,您只需将后缀附加到现有的提交按钮,如下所示:
$form['submit']['#suffix'] = '<p>Some text to place after the submit button</p>';
显然,$form
数组中提交按钮的位置可能会略有不同,具体取决于您要更改的格式。
答案 1 :(得分:1)
我这样做了:
/**
* Implements hook_form_FROM_ID_alter()
*/
function mymodule_form_mycontenttype_node_form_alter(&$form, &$form_state, $form_id) {
$form['actions']['submit']['#suffix'] = '<p>' . t('Some text to place after the submit button.') . '</p>';
}
答案 2 :(得分:0)
提交按钮通常放在$form['actions']
中,其默认权重为100.您可以根据需要设置$form['actions']
的权重,也可以将其他元素的权重设置为大于100他们在提交按钮之后。
#weight
大于34 的所有元素将放置在提交按钮(以及任何其他操作按钮)之后。
$form['actions']['#weight'] = 34;
在提交按钮之后只会放置给定元素。
$form['previewxdmp'] = array(
'#type' => 'markup',
'#markup' => $xdmp_toshow,
'#weight' => 101,
);