Как я могу изменить значение заполнителя формы поиска?
7 answers
Вы не изменяете TranslatableMarkup
объект: Вы заменяете его другим объектом TranslatableMarkup
, полученным из t('The new placeholder')
, или
new TranslatableMarkup('The new placeholder')
(или метод, возвращающий объект TranslatableMarkup
).
function mytheme_form_search_block_form_alter(&$form, FormStateInterface $form_state) {
$form['keys']['#attributes']['title'] = t('The new placeholder');
}
Результат этого кода следующий (в Google Chrome, работающем на OS X El Capitan).
То, что вы показываете, - это не заполнитель, а заголовок ввода. Чтобы изменить заполнитель элемента формы, следует использовать код, аналогичный следующему один.
function mytheme_form_search_block_form_alter(&$form, FormStateInterface $form_state) {
$form['keys']['#attributes']['placeholder'] = t('The new placeholder');
}
Используя этот код, вы получите следующий результат.
Для этого вы можете использовать изменение формы
function yourtheme_form_search_block_form_alter(&$form, &$form_state) {
$form['keys']['#attributes']['placeholder'][] = t('enter the terms you wish to search for');
}
Я думаю, мы могли бы изменить детали формы из hook_form_FORM_ID_alter, следующий код поможет устранить проблему:)
function my_module_form_search_block_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state) {
$form['keys']['#title'] = t('Your custom Title');
$form['keys']['#attributes']['title'] = t('Your custom Placeholder');
}
Приведенный выше код изменит заголовок и заполнитель формы поиска.
Это работает на меня
<?php
use Drupal\Core\Form\FormStateInterface;
/**
* Implements hook_form_alter().
*/
function MODULE_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
if ($form_id == 'search_block_form') {
$form['keys']['#title'] = t('Your custom Title');
}
}
Этот код работает
Https://www.drupal.org/project/bootstrap/issues/2884682
function projet_preprocess_input(&$variables) {
// Set a placeholder for all search form elements.
if ($variables['attributes']['type'] == 'search') {
$variables['attributes']['placeholder'] = 'youhou';
}
}
function MODULE_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
if($form_id == 'search_form') {
$form['keys']['#attributes']['placeholder'] = t('Search topics...');
}
}
Это сработало для меня:
/**
* Implements hook_form_alter().
*/
function MYMODULE_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
if ($form_id == 'search_form') {
$form['basic']['keys']['#title'] = 'Your Title';
}
}