web-dev-qa-db-fra.com

Validation du champ et surlignage

Comment obtenir la validation de l'API de formulaire personnalisé pour mettre en évidence un champ de la même manière que la validation échouée #Required fait? (Voir graphique ci-joint)

NOTE GRAPHIQUE:

1) (ligne verte) Nom de l'entreprise est vide. L'erreur '#Required' est notée et le champ est mis en surbrillance en rouge.

2) Le site Web (Blue Line) est incorrect. La "validation personnalisée" est notée, mais le champ n'est pas mis en surbrillance.

Comment puis-je sélectionner automatiquement le champ "site Web" sur la validation échouer et le supprimer sur le succès?

En utilisant actuellement: form_set_error('', t('Your website address is incorrectly formatted.'));

Voir enter image description here

6
Citricguy

Avez-vous essayé d'utiliser harok_field_validate () ? (Modifier) ​​Je viens de réaliser que vous n'utilisez pas la nouvelle API de champ mais à la place de l'API de formulaire. Peut-être que vous pouvez le construire comme un champ? Si vous connaissez le formulaire API en D6, vous pouvez récupérer l'API sur le terrain dans quelques heures. L'API sur le terrain est un autre niveau de badassness.

j'ai un champ personnalisé qui enregistre les heures ouvrables. Je l'ai défini que si un jour est sélectionné, il doit y avoir un jour de jour. Je viens de mettre en œuvre plus ou moins l'exemple donnant à Api.drupal.org.

*  Implementation of hook_field_validate()
*/
function hours_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
  foreach ($items as $delta => $item) {
    if ($item['end_day'] != '--' && $item['start_day'] == '--') {
      $errors[$field['field_name']][$langcode][$delta][] = array( 
        'error' => t('A from day needs to be choosen if a to day is selected. If they are the same -- forexample, Monday and Monday, the whole line when viewed will only be for Monday.'),
      );
    }
  }
}
2
Adam S