Использование в формах элемента <button type="submit">
14 января 2017
Как уже писал ранее, в Form API доступны три вида кнопок:
<input type="submit" /><input type="button" /><input type="image" />
Если же в форме нужно использовать элемент <button type="submit">...</button>, то можно поступить так:
1. Определить шаблон button_button:
/**
* Implements hook_theme().
*/
function THEMENAME_theme() {
return array(
'button_button' => array(
'render element' => 'element',
),
);
}
/**
* Button theme function.
* @see theme_button().
*/
function THEMENAME_button_button($variables) {
$element = $variables['element'];
$element['#attributes']['type'] = 'submit';
element_set_attributes($element, array('id', 'name'));
$element['#attributes']['class'][] = 'form-' . $element['#button_type'];
if (!empty($element['#attributes']['disabled'])) {
$element['#attributes']['class'][] = 'form-button-disabled';
}
return '<button' . drupal_attributes($element['#attributes']) . '>' . $element['#value'] . '</button>';
}2. В форме добавить кнопке свойство '#theme_wrappers' => array('button_button'):
/**
* Form builder.
*/
function mymodule_myform($form, &$form_state) {
...
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Add') . ' <span class="icon icon-add"></span>',
'#theme_wrappers' => array('button_button'),
);
...
}