Drupal: Настройка формы поиска

Итак, стоит задача сделать форму поиска, текстовое поле которой содержит текст по умолчанию, а при помещении в него курсора поле очищаестя. При освобождении текстового поля, если его значение нулевой длины, то-есть ничего введено не было - снова возвращается значение по умолчанию.

Для решения этой задачи воспользуемся API Drupal, который изменяет формы, а именно:

В файле template.php определим хук hook_form_FORM_ID_alter, который изменит данные самой формы:

function pet_clinic_form_search_block_form_alter(&$form, &$form_state, $form_id) {
    $form['search_block_form']['#title'] = '';
    $form['search_block_form']['#size'] = 25;
    $form['search_block_form']['#value'] = 'Поиск';
    $form['search_block_form']['#attributes']['onblur'] = "if (this.value == '') {this.value = 'Поиск';}";
    $form['search_block_form']['#attributes']['onfocus'] = "if (this.value == 'Поиск') {this.value = '';}";
    // Убираю текст кнопки, останется только фоновый рисунок
    $form['actions']['submit']['#value'] = '';
}

Дальнейшее оформление делается с помощью CSS.

There are 2 Comments

Нужно темизировать форму

Нужно темизировать форму поиска в Drupal 7 так, чтобы в строке поиска выводилось, к примеру, слово "Поиск". А при попытке ввода своего текста для поиска это слово исчезало. Так как поиск работает и по нажатию Enter, то так же хотелось бы убрать кнопку "Найти". Ребята, нужно сделать такую же форму поиска как например на тут . Что бы можно было нажать на ссылку "Refine your search" и появлялось меню с выбором категорий. Как это организовать в своём модуле?

Доброго дня.

Доброго дня.

Есть такой атрибут html placeholder. По аналогии с опианным в статье настройте этот атрибут и будет вам счастье.

Делись своим опытом и знаниями, ибо в могиле они тебе вряд-ли пригодятся.

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <s> <u> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <hr> <dd> <sub> <sup>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Защита от СПАМ ботов. Подтвердите, пожалуйста, что вы человек.
5 + 12 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.