it-swarm.com.de

Wie kann ich den Platzhalterwert des Suchformulars ändern?

Wie kann ich den Platzhalterwert des Suchformulars ändern? Ich kann den Wert in meiner . Theme Datei ändern, aber ich möchte, dass er auch übersetzbar ist.

Was ist der richtige Weg, dies zu tun?

(screenshot

6
sAs59

Sie ändern kein TranslatableMarkup Objekt: Sie ersetzen es durch ein anderes TranslatableMarkup Objekt, das Sie von t('The new placeholder') oder new TranslatableMarkup('The new placeholder') erhalten ( oder eine Methode, die ein TranslatableMarkup Objekt zurückgibt).

function mytheme_form_search_block_form_alter(&$form, FormStateInterface $form_state) {
  $form['keys']['#attributes']['title'] = t('The new placeholder');
}

Das Ergebnis dieses Codes ist das folgende (bei Google Chrome läuft unter OS X El Capitan).

(screenshot

Was Sie anzeigen, ist nicht der Platzhalter, sondern der Eingabetitel. Um den Platzhalter eines Formularelements zu ändern, sollten Sie Code ähnlich dem folgenden verwenden.

function mytheme_form_search_block_form_alter(&$form, FormStateInterface $form_state) {
  $form['keys']['#attributes']['placeholder'] = t('The new placeholder');
}

Mit diesem Code erhalten Sie das folgende Ergebnis.

(screenshot

13
kiamlaluno

hierfür können Sie form alter verwenden

 function yourtheme_form_search_block_form_alter(&$form, &$form_state) {
      $form['keys']['#attributes']['placeholder'][] = t('enter the terms you wish to search for');
    }
1
Naveen

Ich denke, wir könnten die Formulardetails von hook_form_FORM_ID_alter ändern. Der folgende Code würde helfen, das Problem zu beheben :)

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');
}

Der obige Code ändert den Titel und den Platzhalter für das Suchformular.

1
Leopathu

Es funktioniert für mich

<?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');
 }
}

Dieser Code funktioniert

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';
  }
}
0
cafe3rdwave