我正在尝试做一些在drupal中应该非常容易的事情。我只想在默认情况下在drupal管理员中简单地隐藏一个表单字段。
禁用字段根本不起作用。我找不到任何相关文件。令人难以置信的是,在Drupal中做这么简单的事情竟然如此困难。
$form['field_name']['#states'] = [
'visible' => [
':input[name="field_foo[0][target_id]"]' => ['value' => 'blah'],
],
'invisible' => true,
];
可见部分工作。如果另一个字段具有某个值,则显示表单元素。
但是,当您添加新节点时,我根本无法让它在默认情况下隐藏此字段。
简单且不影响默认值(如果设置了默认值(:
$form['field_name']['#attributes']['class'][] = 'hidden';
Drupal核心将";显示:无"这个元素来自使用'hidden'css类的核心样式。
添加到表单元素数组$element=['#access'=>FALSE,]:
$form['field_name'] = [
'#access' => FALSE,
]
您不需要设置不可见,除非满足可见条件,否则默认情况下它将被隐藏。此外,输入看起来是错误的,因为它应该是条件所基于的元素中设置的名称属性
drupal.org文档中有一个例子。
例如
$form['field_name']['#states'] = [
'visible' => [
':input[name="field_conditional_on"]' => ['value' => 'value_conditional_on'],
],
];
或者,如果你只想使用CSS的display属性来隐藏它,你可以使用下面的
$form['field_name']['#states'] = [
'#attributes' => array('style' => array('display: none;')),
];