J'ai créé une entité avec un formulaire «ajouter un nouveau». L'entité elle-même possède un nombre limité de variables réelles. J'ai ajouté la plupart des données supplémentaires dont j'ai besoin en utilisant des champs personnalisés (c'est-à-dire l'API Field).
À ce stade, je dois pouvoir masquer dynamiquement un champ en fonction de la valeur d'un autre. Par exemple, si un champ déroulant a sa valeur définie sur Non, un autre champ doit être masqué, sinon il doit être affiché.
D'après ce que je peux voir, il est assez facile d'ajouter cette fonctionnalité aux champs créés à l'aide de l'API Form (c'est-à-dire via la propriété AJAX), mais y a-t-il un moyen d'y parvenir en utilisant des champs attachés? Je n'ai aucun problème à utiliser Javascript personnalisé si c'est ce qui est nécessaire pour résoudre ce problème.
Réponses:
jQuery fonctionne bien pour cela:
la source
Dans Drupal 7, vous pouvez utiliser $ form
#states
au lieu d'un script jQuery personnalisé. Exemple:Voici un exemple si vous souhaitez utiliser
#states
pour la condition de plusieurs valeurs:Voir le module
form_example/form_example_states.inc
from examples pour plus de détails et d'exemples.la source
#states
, je n'ai jamais trouvé de moyen de définir des conditions de visibilité plus complexes, telles que: masquer le contrôle A lorsque la valeur du contrôle B est dans le tableau (x, y, z). Connaissez-vous une syntaxe pour cela?Vous devriez essayer les champs conditionnels , je pense que ce module est indispensable pour cette tâche. Vous pouvez définir des dépendances entre les champs sur une interface d'administration conviviale. Par exemple, vous pouvez définir le
A
champ pour qu'il soit uniquement visible si leB
champ a la valeur " 1234 ", ou vous pouvez définir le champ deC
texte pour qu'il soit visible uniquement lorsque leD
champ est coché, ou définir leE
champ sur invisible s'ilF
est focalisé, etc.Sur le formulaire de téléchargement, ces dépendances seront définies côté client, sur l'affichage du nœud, ces dépendances seront définies côté serveur.
Vous pouvez définir ces dépendances à
admin/structure/types/manage/[YOURCONTENTTYPESMACHINENAME]/dependencies
.(Source de l'image: la page du projet )
la source