web-dev-qa-db-fra.com

Ajout de CSS et JS au formulaire avec des pièces jointes

J'ai besoin d'ajouter des fichiers CSS et JavaScript externes et locaux à un formulaire, mais je n'arrive pas à trouver la bonne façon de le faire. Dois-je simplement ajouter les chemins et les URL des fichiers JS et CSS?

Je suppose $form['#attached']['css'][] et $form['#attached']['js'][] sont les bons endroits pour le faire, donc ils sont rechargés lors des reconstructions de formulaire. Il me semble manquer quelque chose.

37
vintorg

Avez-vous regardé la documentation?

Attachez CSS et JS au formulaire

http://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#attached

$form['#attached']['css'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.css';

$form['#attached']['js'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.js';

Fichiers externes

http://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_process_attached/7

Les fichiers externes "js" et "css" peuvent également être chargés. Par exemple:

$build['#attached']['js']['http://code.jquery.com/jquery-1.4.2.min.js'] = array('type' => 'external');
71
Alex Gill

Voici la méthode pour ajouter CSS en ligne aux formulaires ...

$form['#attached']['css'][] = array(
  'data' => '.my-example-element { display: none; }',
  'type' => 'inline',
);

Notez que vous devez ajouter au tableau css plutôt que de le remplacer. Ce qui signifie que vous devez utiliser: ['css'][] = plutôt que ['css'] = pour éviter d'écraser d'autres ajouts.

11
doublejosh

Voici une façon de le faire via. appeler une fonction en utilisant #after_build propriété. Passez simplement votre identifiant de formulaire dans le boîtier du commutateur.

function mymodule_form_alter(&$form, &$form_state, $form_id) {
  switch ($form_id) {
    case 'my_form':
      $form['#after_build'][] = 'mymodule_after_build';
      break;
  }
}

function mymodule_after_build($form, &$form_state) {
  $path = drupal_get_path('module', 'mymodule');
  drupal_add_js ("$path/mymodule.js");
  return $form; 
}

Vous pouvez également suivre ce bon tutoriel Ajout de css et js à drupal forms

J'espère que cela t'aides. :)

6
Prerit Mohan