Создание, продвижение сайтов
40-33-54

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

Статьи

Сделайте заказ с сайта и получите 10% скидку на услугу

Заказ услуги с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Заказать бесплатную SEO-консультацию

Запрос бесплатной SEO - консультации с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Письмо в компанию Райбин

Письмо в компанию RAYBIN

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.