Могу ли я сделать вторую или более позднюю кнопку в форме Drupal кнопкой по умолчанию? - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть форма в пользовательском модуле Drupal 6, созданная с помощью API форм, в списке есть 1 или более элементов image_button, за которыми следуют кнопки Сохранить и Отменить.

Все работает нормально при нажатии на изображение и стандартные кнопки, они вызывают функции отправки, которые должны, но если я нажимаю клавишу [ENTER] в любом из текстовых полей в форме, первая кнопка в форме отправляется, К сожалению, в данном случае это кнопка image_ в списке, а не кнопка Сохранить.

Это стандартная проблема с веб-формами, обычно вам нужно взломать скрытую (по стилю и / или размеру) кнопку в начале определения формы, чтобы обеспечить вызов пути отправки по умолчанию (в этом случае это то, что означает Сохранить кнопка будет вызываться), а не путь отправки для кнопок, которые находятся перед кнопкой, которую вы хотите использовать по умолчанию.

Есть ли какая-нибудь магия Drupal 6, позволяющая установить кнопку по умолчанию независимо от того, где она находится в определении формы, которую я не смог найти в документации, или я должен создать фантомную кнопку отправки, стилизованную так, чтобы она не отображалась

Заранее спасибо за любые ответы.

Ответы [ 3 ]

0 голосов
/ 22 ноября 2011

Ответ выглядит так: нет, в Drupal нет встроенного метода решения проблемы с первой кнопкой в ​​форме, используемой по умолчанию при нажатии [ENTER].

Вот что мне пришлосьdo.

Я создал дополнительную кнопку отправки в верхней части формы:

// A submit button that needs to be hidden, it'll be the default rather than one from the list.
$form['hidden-submit'] = array(
  '#type' => 'submit',
  '#value' => 'Save',
  '#attributes' => array('class' => 'hidden-default-submit'),
);

В CSS, включенном для страницы, я добавил следующие CSS пояса и скобки, чтобы скрыть дополнительную отправку.кнопка во всех веб-браузерах, сколько я могу проверить:

.hidden-default-submit {
  position: absolute;
  left: -2000;
  top: -2000;
  width: 0;
  height: 0;
  border: 0;
  margin: 0;
  padding: 0;
}
0 голосов
/ 12 июня 2013

Вы можете легко сделать это, назначив разные имена для каждой кнопки отправки

0 голосов
/ 18 ноября 2011

Попробуйте поставить '#weight' на ваши кнопки.

...