Eu criei uma entidade com um formulário 'adicionar novo'. A própria entidade possui um número limitado de variáveis reais. Adicionei a maioria dos dados extras necessários para o uso de campos personalizados (por exemplo, a API do campo).
O que preciso fazer nesta fase é poder ocultar dinamicamente um campo com base no valor de outro. ou seja, se um campo suspenso tiver seu valor definido como Não, outro campo deverá ser oculto, caso contrário, deverá ser mostrado.
Pelo que pude ver, é um pouco fácil adicionar essa funcionalidade aos campos criados usando a API do formulário (por exemplo, através da propriedade AJAX); no entanto, existe alguma maneira de alcançá-lo usando os campos anexados? Não tenho problemas ao usar Javascript personalizado, se é isso que é necessário para resolver isso.
Respostas:
O jQuery funciona bem para isso:
fonte
No Drupal 7, você pode usar $ form em
#states
vez do script jQuery personalizado. Exemplo:Aqui está um exemplo se você deseja usar
#states
para a condição de vários valores:Veja o
form_example/form_example_states.inc
módulo from examples para mais detalhes e exemplos.fonte
#states
, nunca encontrei uma maneira de definir condições de visibilidade mais complexas, como: ocultar o controle A quando o valor do controle B estiver na matriz (x, y, z). Você conhece uma sintaxe para isso?Você deve tentar Campos Condicionais , acho que este módulo é essencial para esta tarefa. Você pode definir dependências entre os campos em uma interface administrativa amigável. Por exemplo, você pode definir o
A
campo para ficar visível apenas se oB
campo tiver o valor " 1234 " ou definir o campo deC
texto para ficar visível apenas quando oD
campo estiver marcado ou definir oE
campo para invisível seF
estiver focado etc.No formulário de upload, essas dependências serão definidas no lado do cliente, na exibição do nó, essas dependências serão definidas no lado do servidor.
Você pode definir essas dependências em
admin/structure/types/manage/[YOURCONTENTTYPESMACHINENAME]/dependencies
.(Fonte da imagem: a página do projeto )
fonte