【发布时间】:2016-07-12 13:42:04
【问题描述】:
我正在尝试以编程方式从某些节点/*/编辑字段中删除所需的状态。所需状态是默认设置的,只能根据分类字段中的选定值删除:
使用以下代码:
function mymodule_form_node_form_alter(&$form, &$form_state, $form_id) {
if( $form_id == 'job_node_form' ){
$form['#after_build'] = array('test');
}
}
function test(&$form, &$form_state) {
$form['title']['#required'] = FALSE; // works
$form['jobs_schools_data']['field_job_type']['#required'] = FALSE; // does NOT work
return $form;
}
我发现我可以成功地从标题字段中删除所需的状态,但对于我在上面的代码示例中添加的字段,例如 field_job_type,这同样不起作用。
为什么这不起作用,我该如何纠正它?
【问题讨论】:
-
如果您转储
$form,您确定可以访问正确的元素吗?也许尝试将$form_state['rebuild'] = true;添加到test函数 -
否则,默认情况下需要删除,并在节点上设置 hook_validate 以应用条件
标签: drupal-7 field nodes required