Question

Lorsqu'un formulaire validation échoue Drupal, il est redessinée avec les éléments que la validation a échoué dans une bordure entourée rouge. Drupal fait en ajoutant la classe error aux éléments d'entrée et une specifing 2px bordure rouge sur input.error éléments system.css.

Sans modifier cette feuille de style, comment puis-je supprimer la bordure rouge sur une forme spécifique que, tout en utilisant le comportement par défaut sur le reste du site?

Je crois que la solution pourrait nécessiter l'utilisation d'un theme_form_element personnalisé, mais je ne peux pas comprendre comment personnaliser une seule forme.

Notez que je voudrais le faire sans avoir à recourir à cette astuce de jQuery (qui fonctionne):

$("#edit-name").removeClass('error');
Était-ce utile?

La solution

Vous devrez supprimer la classe d'erreur des éléments de formulaire. Cela peut être fait en réécrivant les fonctions thématiques, dans theme_textfield, theme_textarea ... (il y en a un pour chaque type)

Jetez un oeil à $element['#attributes']['class'] qui contient la classe d'erreur.

EDIT Pour le faire pour un élément de forme spécifique ou la forme que vous pouvez utiliser l'attribut #theme ou la forme ou l'élément que vous souhaitez modifier la fonction thématisation pour.

Autres conseils

Le plus simple est de ne pas essayer de modifier le balisage Drupal est spotting, mais au lieu de changer les styles assocaited avec la classe error.

Vous pouvez le faire sans modifier system.css. Il suffit d'ajouter une nouvelle feuille de style dans votre thème (ou utilisez un modèle existant!). Utilisez la nature des CSS pour Cascading changer les éléments de manière à apparaître des erreurs. Ajouter quelque chose comme:

.error {
  border: 0;
}

... et vous avez terminé.

Pour cibler une seule forme spécifique, ajouter un autre sélecteur, comme suit:

#my-specific-form .error {
  border: 0;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top