Текст внутри поля ПОИСК

Главные вкладки

Аватар пользователя Dima_ekat Dima_ekat 31 января 2012 в 8:37

Подскажите, как сделать, чтобы внутри поля поиск, можно было разместить текст, например ПОИСК, который бы исчезал при клике мыши . В обычном input это делалось как . Я нашел где выводится в Drupal шаблоне это поле, оно выглядит так:
// the search_block_form element is the search's text field, it also happens to be the form id, so can be confusing
$form['search_block_form']['#title'] = t('');
$form['submit']['#value'] = 'Search';

Комментарии

Аватар пользователя Dima_ekat Dima_ekat 31 января 2012 в 8:43

Dima_ekat wrote:
Подскажите, как сделать, чтобы внутри поля поиск, можно было разместить текст, например ПОИСК, который бы исчезал при клике мыши . В обычном input это делалось как . Я нашел где выводится в Drupal шаблоне это поле, оно выглядит так:
// the search_block_form element is the search's text field, it also happens to be the form id, so can be confusing
$form['search_block_form']['#title'] = t('');
$form['submit']['#value'] = 'Search';

Что то не вставилось, в обычном input это делалось через placeholder

Аватар пользователя skit25 skit25 31 января 2012 в 9:22

Текст внутри поля задает параметр value, остальное JS скрипт.
Примерно такой код я использую.

<input id="searchkey" class="searchboxinmainpage" type="text" name="searchkey" size="8" value="Search..." onblur="if(this.value=='') this.value='Search...';" onfocus="if(this.value=='Search...') this.value='';" style="width: 153px;">
Аватар пользователя jchoo jchoo 31 января 2012 в 13:07

Создайте файл template.php в вашей теме и напишите там :

<?phpfunction твоятема_preprocess_search_theme_form(&$vars, $hook) {
  // Remove the "Search this site" label from the form.
  $vars['form']['search_theme_form']['#title'] = t('');
  
  // Set a default value for text inside the search box field.
  $vars['form']['search_theme_form']['#value'] = t('key words'); //вот тут содержится текст который будет в поле поиска
  
  // Add a custom class and placeholder text to the search box.
  $vars['form']['search_theme_form']['#attributes'] = array('class' => 'NormalTextBox txtSearch', 'onblur' => "if (this.value == '') {this.value = '".$vars['form']['search_theme_form']['#value']."';} ;", 'onfocus' => "if (this.value == '".$vars['form']['search_theme_form']['#value']."') {this.value = '';} ;" ); // а тут js который убирает текст из  $vars['form']['search_theme_form']['#value'] при активации поля поиска и возвращает при деактивации.

  // Rebuild the rendered version (search form only, rest remains unchanged)
  unset($vars['form']['search_theme_form']['#printed']);
  $vars['search']['search_theme_form'] = drupal_render($vars['form']['search_theme_form']);

  $vars['form']['submit']['#type'] = 'image_button';
  $vars['form']['submit']['#src'] = path_to_theme() . '/images/search_button.png';
    
  // Rebuild the rendered version (submit button, rest remains unchanged)
  unset($vars['form']['submit']['#printed']);
  $vars['search']['submit'] = drupal_render($vars['form']['submit']);

  // Collect all form elements to make it easier to print the whole form.
  $vars['search_form'] = implode($vars['search']);
}?>

Еще можно воспользоваться jquery библиотекой placeholder.js, подробнее о ней тут