Использование в формах элемента <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'), ); ... }